冒泡排序 def mao_pao(num_list): num_len = len(num_list) # 控制循环的次数 for j in range(num_len): # 添加标记位 用于优化(如果没有交换表示有序,结束循环) sign = False # 内循环每次将最大值放在最右边 for i in range(num_len - 1 - j): if num_list[i] > num_list[i + 1]: num_list[i], num_list[i + 1] = num_list[i + 1], num_list[i] sign = True # 如果没有交换说明列表已经有序,结束循环 if not sign: break return num_list if __name__ == '__main__': a = [2,1] b = mao_pao(a) print(b)
插入排序
def inert_sort(l): l1 = [l[0]] for i in range(len(l)-1): for j in range(len(l1)): if l[i+1] <= l1[0]: l1.insert(0, l[i+1]) break elif l[i+1] > l1[len(l1)-1]: l1.append(l[i+1]) break elif l1[j] < l[i+1] and l1[j+1] >= l[i+1] : l1.insert(j+1, l[i+1]) break return l1 if __name__ == '__main__': l = [0, 3, 1, 5, 8, 4, 4, 5, 6] new_l = inert_sort(l) print(new_l)