1,插入排序类似于摸扑克牌。
def insertSort(arr):
length = len(arr)
for i in range(1,length):
x = arr[i] ##取出这个数,讲个位置空出,给arr[j]
for j in range(i,-1,-1):
# j为当前位置,试探j-1位置,此时的X=arr[i]=arr[j],在第一次时,i=j,
#然后随着j循环一个一个的减少,比较在往前滑动。(arr[i]的的位子上的数字已经被提取出来所以这个位置可以填充其他的数)
if arr[j-1] > x :
arr[j] = arr[j-1]
else:
# 位置确定为j
break
arr[j] = x
return arr
arr = [4, 7 ,8 ,2 ,3 ,5]
insertSort(arr)
print(insertSort(arr))
2,冒泡排序:—————玩的是那个最大的值。(两两比较)
#冒泡排序
array = [3, 7, 2, 1, 9, 4, 5, 0, 8, 6]
print(array)
lenth = len(array)
irange = lenth - 1
for i in range(irange):
jrange = lenth - i - 1
for j in range(jrange):
first = array[j]
nexts = array[j+1]
if array[j] > array[j+1]:
array[j],array[j+1] = array[j+1],array[j]
3,归并排序:分割递归。
def mergeSort(arr):
if len(arr) >1:
mid=int(len(arr)/2)
left=arr[:mid]
right=arr[mid:]
mergeSort(left)
mergeSort(right)
i=0
j=0
k=0
while i < len(left) and j<len(right):
if left[i] >right[j]:
arr[k]=right[j]
j +=1
else:
arr[k]=left[i]
i +=1
k +=1
while i < len(left):
arr[k]=left[i]
i +=1
k +=1
while j < len(right):
arr[k]=right[j]
j +=1
k +=1
return arr
print(mergeSort(arr))