插入排序:就是把一個(gè)無(wú)序數(shù)組按照從小到大或者從大到小排序?yàn)橛行驍?shù)組顶瞒。
1.首先將無(wú)序數(shù)組中的第一個(gè)元素設(shè)為有序數(shù)組的第一個(gè)元素痒钝。
2.從無(wú)序數(shù)組中的第二個(gè)數(shù)開始與有序數(shù)組中的元素作比較如果大于新數(shù)組中的第k個(gè)元素則數(shù)組從第k個(gè)元素往后的元素都需要向右移動(dòng)一位春宣。騰出第k個(gè)元素的位置放入新元素纫骑。
3.重復(fù)第二步取第三,四澄暮,五 名段。。泣懊。伸辟。 一直到無(wú)序數(shù)組為空。
4.該方法無(wú)序數(shù)組從大到小排列為有序數(shù)組嗅定。
def insert_sort1(n_list):
temp = 0
# 第一層循環(huán) 是 列表中的無(wú)序部分 從1到n
for i in range(1,len(n_list)):
# 第二層循環(huán) 是列表中的有序部分 0 -i
for j in range(i):
# 如果說(shuō) 列表中的第i個(gè)無(wú)序元素大于第j有序元素
if n_list[i]<n_list[j]:
temp = n_list[i]
# 將 從 j - i-1 部分的元素統(tǒng)統(tǒng)后移一位
for k in range(i,j,-1):
n_list[k] = n_list[k-1]
n_list[j] = temp
break
print(n_list)
return n_list
def insert_sort2(n_list):
for i in range(1,len(n_list)):
for j in range(i):
if n_list[i] >n_list[j]:
temp = n_list[i]
for k in range(i,j,-1):
n_list[k] = n_list[k-1]
n_list[j] = temp
break
return n_list
if __name__ == "__main__":
n_list= [1,2,3,4,5,7,0,-1,5,-10]
insert_sort1(n_list)
insert_sort2(n_list)