Skip to content

Commit ee54b76

Browse files
Sorting.py
1 parent 39e3333 commit ee54b76

File tree

1 file changed

+56
-70
lines changed

1 file changed

+56
-70
lines changed

Sorting.py

+56-70
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44

55
def mergeSort(array):
66
if len(array) > 1:
7-
8-
r =len(array)//2
7+
r = len(array) // 2
98
L = array[:r]
109
M = array[r:]
1110

12-
1311
mergeSort(L)
1412
mergeSort(M)
1513

@@ -24,112 +22,100 @@ def mergeSort(array):
2422
j += 1
2523
k += 1
2624

27-
2825
while i < len(L):
2926
array[k] = L[i]
3027
i += 1
3128
k += 1
3229

3330
while j < len(M):
3431
array[k] = M[j]
35-
j+= 1
32+
j += 1
3633
k += 1
3734

38-
3935
def partition(array, low, high):
40-
4136
pivot = array[high]
4237
i = low - 1
4338

4439
for j in range(low, high):
4540
if array[j] <= pivot:
41+
i = i + 1
42+
array[i], array[j] = array[j], array[i]
4643

47-
i = i+1
48-
49-
(array[i], array[j]) = (array[j], array[i])
50-
51-
(array[i+1], array[high]) = (array[high], array[i+1])
52-
return i+1
53-
44+
array[i + 1], array[high] = array[high], array[i + 1]
45+
return i + 1
5446

5547
def quickSort(array, low, high):
5648
if low < high:
5749
pi = partition(array, low, high)
5850
quickSort(array, low, pi - 1)
5951
quickSort(array, pi + 1, high)
6052

61-
6253
def selectionSort(array, size):
6354
for step in range(size):
6455
min_idx = step
65-
6656
for i in range(step + 1, size):
67-
6857
if array[i] < array[min_idx]:
6958
min_idx = i
70-
(array[step], array[min_idx]) = (array[min_idx], array[step])
71-
59+
array[step], array[min_idx] = array[min_idx], array[step]
7260

7361
def read_Input():
74-
a=[]
75-
n=int(input("Enter the number of TV Channels:"))
76-
print("Enter the no.of viewers")
77-
for i in range(0,n):
78-
l=int(input())
62+
a = []
63+
n = int(input("Enter the number of TV Channels: "))
64+
print("Enter the number of viewers")
65+
for i in range(0, n):
66+
l = int(input())
7967
a.append(l)
80-
return a;
68+
return a
8169

8270
elements = list()
8371
times = list()
84-
global labeldata
72+
8573
print("1. Merge Sort 2. Quick Sort 3. Selection Sort")
86-
ch = int(input("Enter the Choice :"))
87-
if (ch==1):
88-
array=read_Input()
89-
mergeSort(array)
90-
labeldata="MergeSort"
91-
print("Sorted Array is:")
92-
print(array)
93-
elif(ch==2):
94-
array=read_Input()
95-
size = len(array)
96-
labeldata="QuickSort"
97-
quickSort(array, 0, size - 1)
98-
print('Sorted Array is:')
99-
print(array)
100-
if (ch==3):
101-
array=read_Input()
102-
size = len(array)
103-
labeldata="SelectionSort"
104-
selectionSort(array, size)
105-
print('Sorted Array is:')
106-
print(array)
107-
print("***************************Running Time Analysis************************")
108-
for i in range (1,11):
74+
ch = int(input("Enter the Choice: "))
10975

110-
array = randint(0, 1000*i, 1000*i)
111-
start=time.time()
76+
if ch in [1, 2, 3]:
77+
array = read_Input()
11278

113-
if ch==1:
79+
if ch == 1:
80+
labeldata = "MergeSort"
11481
mergeSort(array)
115-
elif ch==2:
116-
size=len(array)
117-
quickSort(array, 0, size-1)
118-
else:
119-
size=len(array)
82+
elif ch == 2:
83+
labeldata = "QuickSort"
84+
size = len(array)
85+
quickSort(array, 0, size - 1)
86+
elif ch == 3:
87+
labeldata = "SelectionSort"
88+
size = len(array)
12089
selectionSort(array, size)
12190

122-
end=time.time()
123-
124-
print("Sorted List is:")
125-
print(len(array), "Elements Sorted by", labeldata,end-start)
126-
elements.append(len(array))
127-
times.append(end-start)
91+
print("Sorted Array is:")
92+
print(array)
12893

129-
plt.xlabel('List Length')
130-
plt.ylabel('Time Complexity')
131-
labeldata="sort"
132-
plt.plot(elements, times, label=labeldata)
133-
plt.grid()
134-
plt.legend()
135-
plt.show(
94+
print("***************************Running Time Analysis************************")
95+
for i in range(1, 11):
96+
array = randint(0, 1000 * i, 1000 * i)
97+
start = time.time()
98+
99+
if ch == 1:
100+
mergeSort(array)
101+
elif ch == 2:
102+
size = len(array)
103+
quickSort(array, 0, size - 1)
104+
elif ch == 3:
105+
size = len(array)
106+
selectionSort(array, size)
107+
108+
end = time.time()
109+
110+
print(len(array), "Elements Sorted by", labeldata, "in", end - start, "seconds")
111+
elements.append(len(array))
112+
times.append(end - start)
113+
114+
plt.xlabel('List Length')
115+
plt.ylabel('Time Complexity')
116+
plt.plot(elements, times, label=labeldata)
117+
plt.grid()
118+
plt.legend()
119+
plt.show()
120+
else:
121+
print("Invalid choice. Please select 1, 2, or 3 for sorting algorithms.")

0 commit comments

Comments
 (0)