##nums is the list including numbers##
def BinaryInsertSort(nums):
n = len(nums)
if n<=1:
return nums
for i in range(1, n):
if nums[i]<nums[i-1]:
temp = nums[i]
start = 0
end = i-1
while start<=end:
mid = (start+end)/2
if nums[mid]>temp:
end = mid-1
else:
start = mid + 1
for j in range(i-1, start-1, -1):
nums[j+1] = nums[j]
nums[start] = temp
return nums
if __name__ == '__main__':
nums = [int(i) for i in raw_input().split()]
nums = BinaryInsertSort(nums)
print nums
折半插入排序 Python实现
最新推荐文章于 2024-03-15 11:43:46 发布