File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ import random
2
+
3
+
4
+ def bubble_sort (seq ):
5
+ '''O(n^2)'''
6
+ n = len (seq )
7
+
8
+ for i in range (n - 1 ):
9
+ print (seq )
10
+ for j in range (n - 1 - i ):
11
+ if seq [j ] > seq [j + 1 ]:
12
+ seq [j ], seq [j + 1 ] = seq [j + 1 ], seq [j ]
13
+ print ('+++++++++++++bubble++++++++++++++' )
14
+ return seq
15
+
16
+
17
+ def select_sort (seq ):
18
+ '''O(n)'''
19
+ n = len (seq )
20
+
21
+ for i in range (n - 1 ):
22
+ min_idx = i
23
+ for j in range (i + 1 , n ):
24
+ if seq [j ] < seq [min_idx ]:
25
+ min_idx = j
26
+ if min_idx != i :
27
+ seq [i ], seq [min_idx ] = seq [min_idx ], seq [i ]
28
+ print (seq )
29
+ print ('+++++++++++++select++++++++++++++' )
30
+ return seq
31
+
32
+
33
+ def insert_sort (seq ):
34
+ '''O(n)'''
35
+ n = len (seq )
36
+
37
+ for i in range (0 , n ):
38
+ v = seq [i ]
39
+ pos = i
40
+ while pos > 0 and v < seq [pos - 1 ]:
41
+ seq [pos ] = seq [pos - 1 ]
42
+ pos -= 1
43
+ seq [pos ] = v
44
+ print ('+++++++++++++insert++++++++++++++' )
45
+ return seq
46
+
47
+
48
+ def test_sort ():
49
+ seq = list (range (10 ))
50
+ random .shuffle (seq )
51
+
52
+ assert bubble_sort (seq [:]) == sorted (seq )
53
+ print ("\n \n " )
54
+ assert select_sort (seq [:]) == sorted (seq )
55
+ print ("\n \n " )
56
+ assert insert_sort (seq [:]) == sorted (seq )
57
+
58
+
59
+ if __name__ == "__main__" :
60
+ test_sort ()
You can’t perform that action at this time.
0 commit comments