forked from 713512/new_data_structures
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinsert_sort.py
More file actions
42 lines (31 loc) · 1.18 KB
/
insert_sort.py
File metadata and controls
42 lines (31 loc) · 1.18 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import timeit
def sorter(self):
for x in range(1, len(self)):
currentval = self[x]
position = x
while position > 0 and self[position - 1] > currentval:
self[position] = self[position - 1]
position = position - 1
self[position] = currentval
return self
if __name__ == '__main__':
def easy_sort():
x = range(100)
sorter(x)
def hard_sort():
x = range(100, 0, -1)
sorter(x)
def long_sort():
x = range(1000)
sorter(x)
def long_hard_sort():
x = range(1000, 0, -1)
sorter(x)
print "This is sorting a range from 1-100"
print(timeit.Timer("easy_sort()", setup="from __main__ import easy_sort").timeit(number=100))
print "This is sorting a range 100-1"
print(timeit.Timer("hard_sort()", setup="from __main__ import hard_sort").timeit(number=100))
print "This is sorting a range from 1-1000"
print(timeit.Timer("long_sort()", setup="from __main__ import long_sort").timeit(number=100))
print "This is sorting a range 1000-1"
print(timeit.Timer("long_hard_sort()", setup="from __main__ import long_hard_sort").timeit(number=100))