10000 Minor changes to quicksort. Added new test cases. · rajpranesh/practice-python@8028db7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8028db7

Browse files
committed
Minor changes to quicksort. Added new test cases.
1 parent e6c80db commit 8028db7

File tree

2 files changed

+34
-23
lines changed

2 files changed

+34
-23
lines changed

quick_sort/main.py

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,27 @@ def is_sorted(numbers):
1313
return True
1414

1515

16+
def check_sort(original):
17+
numbers = original[:]
18+
19+
qs = QuickSort(numbers)
20+
output = qs.sort()
21+
22+
print(output)
23+
24+
if is_sorted(output):
25+
print("** SUCCESS! **")
26+
else:
27+
print("Uh oh - not in order.")
28+
29+
if contain_same_ints(original, numbers):
30+
print("** Contain the same elements! **")
31+
else:
32+
print("Uh oh - something is missing.")
33+
34+
print("---")
35+
36+
1637
def contain_same_ints(arr1, arr2):
1738
for i in arr1:
1839
found = False
@@ -24,29 +45,21 @@ def contain_same_ints(arr1, arr2):
2445

2546
return True
2647

48+
2749
def main():
28-
original = [325432, 989, 547510, 3, -93, 189019, 5042, 123,
50+
check_sort([325432, 989, 547510, 3, -93, 189019, 5042, 123,
2951
597, 42, 7506, 184, 184, 2409, 45, 824,
3052
4, -2650, 9, 662, 3928, -170, 45358, 395,
31-
842, 7697, 110, 14, 99, 221]
53+
842, 7697, 110, 14, 99, 221])
3254

33-
numbers = original[:]
55+
check_sort([9, 9, 9, 9, 9, 9, 9, 9, 9, 9])
3456

35-
qs = QuickSort(numbers)
36-
output = qs.sort()
57+
check_sort([3, 5, 7, 9, 23, 25, 34, 53, 77, 199])
3758

38-
if is_sorted(output):
39-
print("** SUCCESS! **")
40-
else:
41-
print("Uh oh - not in order.")
42-
43-
if contain_same_ints(original, numbers):
44-
print("** Contain the same elements! **")
45-
else:
46-
print("Uh oh - something is missing.")
47-
48-
print(output)
59+
check_sort([3, 5, 7])
60+
check_sort([3, 5])
61+
check_sort([3])
4962

5063

5164
if __name__ == "__main__":
52-
main()
65+
main()

quick_sort/quick_sort.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33

44
class QuickSor C455 t(object):
5-
65
def __init__(self, numbers):
76
self.values = numbers
87
self.count = len(self.values)
@@ -22,16 +21,15 @@ def quick_sort(self, left, right):
2221

2322
pivot = self.values[pivot_index]
2423

25-
while i <= j:
24+
while i < j:
2625
while self.values[i] < pivot:
2726
i += 1
2827
while self.values[j] > pivot:
2928
j -= 1
3029
if i <= j:
31-
if i < j:
32-
temp = self.values[i]
33-
self.values[i] = self.values[j]
34-
self.values[j] = temp
30+
temp = self.values[i]
31+
self.values[i] = self.values[j]
32+
self.values[j] = temp
3533
i += 1
3634
j -= 1
3735

0 commit comments

Comments
 (0)
0