快速排序
# -*- coding: utf-8 -*-
def fast_sort(array,start,end):
if start >=end: return
i = start
j = end-1
k = array[start]
while i < j:
while i < j and array[j] >= k:
j-=1
tmp = array[j]
array[j] = array[i]
array[i] = tmp
while i < j and array[i] < k:
i+=1
tmp = array[j]
array[j] = array[i]
array[i] = tmp
print i,j
fast_sort(array,start,i)
fast_sort(array,i+1,end)
if __name__ == '__main__':
array = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3,13]
fast_sort(array,0,len(array))
print array
选择排序
# -*- coding: utf-8 -*-
source = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3,13]
count = 0
for i in range(len(source)):
for j in range(i,len(source)):
source_ele = source[i] #要被拿来对比且替换的原始值
if source[j] < source_ele : #只要这个列表后面的值比最前面的值大,那就把它俩个做个对调
source[i] = source[j]
source[j] = source_ele
count +=1
# print(source)
print(source)
print("运行次数",count)
插入排序
# -*- coding: utf-8 -*-
source = [92, 77, 67, 8, 6, 84, 55, 85, 43, 67]
for i in range(1,len(source)):
current_val = source[i]
position = i
while position > 0 and source[position-1] > current_val:
source[position] = source[position-1]
position -=1
source[position] = current_val
print source