1.选择排序
算法:
对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换;
然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换。
如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1、Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成
动态视频:http://v.youku.com/v_show/id_XMjU4NTY5NTcy.html?from=y1.2-1-95.3.6-2.1-1-1-5-0
def selectSort(array): for i in range(0, len(array)): min = i for j in range(i+1, len(array)): if array[j] < array[min]: min = j array[i], array[min] = array[min], array[i] def getRandomList(): array = [] for i in range(1, 10000): array.append(i) random.shuffle(array) return array if __name__ == ‘__main__‘: array = getRandomList() t1 = datetime.datetime.now() # bubble_sort(array) #quickSort(array, 0, len(array)-1) selectSort(array) t2 = datetime.datetime.now() print t2 - t1 ######## 0:00:15.805000 [Finished in 16.0s]
2 插入排序
def insertSort(array): for i in range(0, len(array)): min = i for j in range(i+1, len(array)): if array[min] > array[j]: min = j array[min], array[i] = array[i], array[min] def getRandomList(): array = [] for i in range(1, 10000): array.append(i) random.shuffle(array) return array if __name__ == ‘__main__‘: array = getRandomList() t1 = datetime.datetime.now() # bubble_sort(array) #quickSort(array, 0, len(array)-1) # selectSort(array) insertSort(array) t2 = datetime.datetime.now() print array print t2 - t1 ######## 0:00:05.125000 [Finished in 5.6s]
原文:http://www.cnblogs.com/gcm688/p/5297174.html