# 二分插入排序definsertion_sort_binarysearch(data_list):for index inrange(1,len(data_list)):
current_value = data_list[index]
position = index
left =0
right = index -1# 只关注当前元素前面的元素# 找到插入位置及left的位置while left <= right:
mid =(left + right)//2if data_list[mid]> current_value:
right = mid -1# 缩小右边界else:
left = mid +1# 缩小左边界while position > left:
data_list[position]= data_list[position -1]# left之后的向后移动
position = position -1
data_list[position]= current_value # position=left位置存放当前元素return data_list
data_list =[1,3,4,6,1,2,412,123,21,3,12,7,9,12,5]
data_list = insertion_sort_binarysearch(data_list)print(data_list)
直接插入排序请看:https://blog.csdn.net/ALakers/article/details/108738339二分插入排序:# 二分插入排序def insertion_sort_binarysearch(data_list): for index in range(1,len(data_list)): current_value = data_list[index] position = index left = .