#选择排序算法
1 | def sort(a): |
#插入排序算法1
2
3
4
5
6
7
8def sort(a):
N = len(a)
for i in range(1,N):
for j in range(i,0,-1):
if a[j] < a[j-1]
temp = a[j]
a[j] = a[j-1]
a[j-1] = temp
#希尔排序算法
1 | def sort(a): |
#归并排序1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28def merge(a, b):
c = []
h = j = 0
while j < len(a) and h < len(b):
if a[j] < b[h]:
c.append(a[j])
j += 1
else:
c.append(b[h])
h += 1
if j == len(a):
for i in b[h:]:
c.append(i)
else:
for i in a[j:]:
c.append(i)
return c
def merge_sort(lists):
if len(lists) <= 1:
return lists
middle = len(lists)/2
left = merge_sort(lists[:middle])
right = merge_sort(lists[middle:])
return merge(left, right)
#快速排序1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21def sort(a,low,high):
left = low
right = high
if left >= right:
return
key = a[left]
l = left
while True:
while a[left] <= key and left < right:
left +=1
while a[right] > key and left < right:
right -=1
temp = a[left]
a[left] = a[right]
a[right] = temp
if left >= right:
break
a[right] = key
sort(a,low,right)
sort(a,right,high)