我想寫一個插入排序演算法。我幾乎完成了它,但函式本身似乎甚至不關心最后一個數字。這里可能有什么問題?
def insertion_sort(user_list):
sorted_list = []
sorted_list.append(user_list[0])
for index in range(0, len(user_list)):
if user_list[index] < user_list[-1]:
for reversed_index in range(index, 0, -1):
if user_list[reversed_index] < user_list[reversed_index-1]:
user_list[reversed_index], user_list[reversed_index-1] = user_list[reversed_index-1], user_list[reversed_index]
print(user_list)
print("\n\n", user_list)
if __name__ == '__main__':
user_list = [4, 3, 2, 10, 12, 1, 5, 6]
insertion_sort(user_list)
uj5u.com熱心網友回復:
替換if user_list[index] < user_list[-1]為if user_list[index] < user_list[index-1].
在進行插入排序時,我們比較兩個連續的元素以檢查它們是否亂序。與 user_list 的最后一個元素進行比較似乎是一個錯字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/374282.html
下一篇:基于xyz的3d碰撞公式
