常用排序算法的Python实现
最近一段时间学习了python,发现python真是个强大,强大到和Matlab相媲美。为了熟悉python,将之前的各种排序算法用python实现了一下。常用的时间复杂度为O(n^2)的排序算法有冒泡排序,插入排序和选择排序,时间复杂度为O(nlog2(n))的算法有快速排序,归并排序和堆排序,
这里的快速排序的初始比较值partition是随机给定的,在用python进行编写时能更清楚的理解整个排序算法的过程。
1 import random
2 def BubbleSort(num):
3 n=len(num)
4 for i in range(0,n):
5 for j in range(i,n):
6 if num>=num:
7 num,num=num,num
8 return num
9 def SelectSort(num):
10 for i in range(0,len(num)):
11 mindex=i
12 for j in range(i,len(num)):
13 if num>num:
14 mindex=j
15 num,num=num,num
16 return num
17 def InsertSort(num):
18 for i in range(1,len(num)):
19 j=i-1
20 tmp=num
21 while j>0 and tmp0:
33 if left>right:
34 result.append(right.pop(0))
35 else:
36 result.append(left.pop(0))
37 if len(left)>0:
38 result.extend(MergerSort(left))
39 else:
40 result.extend(MergerSort(right))
41 return result
42 def QuickSort(num):
43 if len(num)
页:
[1]