插入排序:就是把一个无序数组按照从小到大或者从大到小排序为有序数组。
1.首先将无序数组中的第一个元素设为有序数组的第一个元素。
2.从无序数组中的第二个数开始与有序数组中的元素作比较如果大于新数组中的第k个元素则数组从第k个元素往后的元素都需要向右移动一位。腾出第k个元素的位置放入新元素。
3.重复第二步取第三,四,五 。。。。 一直到无序数组为空。
4.该方法无序数组从大到小排列为有序数组。
def insert_sort1(n_list):
temp = 0
# 第一层循环 是 列表中的无序部分 从1到n
for i in range(1,len(n_list)):
# 第二层循环 是列表中的有序部分 0 -i
for j in range(i):
# 如果说 列表中的第i个无序元素大于第j有序元素
if n_list[i]<n_list[j]:
temp = n_list[i]
# 将 从 j - i-1 部分的元素统统后移一位
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)
网友评论