算法

快速排序

# -*- 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

 

posted on 2016-05-31 11:25  zhaobin022  阅读(159)  评论(0编辑  收藏  举报