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