python實現插入排序
阿新 • • 發佈:2020-12-14
技術標籤:LeetCodepython演算法leetcode
插入排序
基本原理
類似於摸牌,將摸起來的牌插入到合適位置。
程式碼
# -*- coding: utf-8 -*-
'''
插入排序:
類似於摸牌,從牌堆中摸一張牌,和手中現有手牌比較。若大則放右邊,小放左邊。
'''
def insert_sort(input_list):
if len(input_list)<=1:
return input_list
for right in range(1,len(input_list)): # 開始從牌堆中摸牌
val = input_list[right] # 當前摸牌的值
for left in range(0,right): # 迴圈和手中牌進行比較
if val <= input_list[left]: # 若<最左邊的牌了
input_list[left+1:right+1]=input_list[left:right]
input_list[left]=val
break
return input_list
if __name__ == '__main__':
pre_list = [1,6,3,3,7]
res = insert_sort(pre_list)
print(res)
易忘點和易錯點
a. 不要忘記列表長度為1的情況。
b. 注意break的使用以及位置,是放在if語句下面,如果放到第二層for迴圈下,就會一直迴圈。