Skip to content

Commit b2ccd65

Browse files
author
Siddharth Kekre
committed
Code Updated
1 parent 1d07f4c commit b2ccd65

File tree

1 file changed

+165
-27
lines changed

1 file changed

+165
-27
lines changed

Code/Main.py

Lines changed: 165 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
Merge_SPST['HundredThousand'] = time.total_seconds()
4040
print('SPST Merge Sort HundredThousand Done')
4141
except:
42-
Merge_SPST['HundredThousand'] = -1
42+
Merge_SPST['HundredThousand'] = 0
4343
print('SPST Merge Sort HundredThousand Failed')
4444
try:
4545
print('SPST Merge Sort OneMillion Begin')
@@ -52,7 +52,7 @@
5252
Merge_SPST['OneMillion'] = time.total_seconds()
5353
print('SPST Merge Sort OneMillion Done')
5454
except:
55-
Merge_SPST['OneMillion'] = -1
55+
Merge_SPST['OneMillion'] = 0
5656
print('SPST Merge Sort OneMillion Failed')
5757
try:
5858
print('SPST Merge Sort TenMillion Begin')
@@ -65,7 +65,7 @@
6565
Merge_SPST['TenMillion'] = time.total_seconds()
6666
print('SPST Merge Sort TenMillion Done')
6767
except:
68-
Merge_SPST['TenMillion'] = -1
68+
Merge_SPST['TenMillion'] = 0
6969
print('SPST Merge Sort TenMillion Failed')
7070
try:
7171
print('SPST Merge Sort FiftyMillion Begin')
@@ -78,7 +78,7 @@
7878
Merge_SPST['FiftyMillion'] = time.total_seconds()
7979
print('SPST Merge Sort FiftyMillion Done')
8080
except:
81-
Merge_SPST['FiftyMillion'] = -1
81+
Merge_SPST['FiftyMillion'] = 0
8282
print('SPST Merge Sort FiftyMillion Failed')
8383
try:
8484
print('SPST Merge Sort HundredMillion Begin')
@@ -91,7 +91,7 @@
9191
Merge_SPST['HundredMillion'] = time.total_seconds()
9292
print('SPST Merge Sort HundredMillion Done')
9393
except:
94-
Merge_SPST['HundredMillion'] = -1
94+
Merge_SPST['HundredMillion'] = 0
9595
print('SPST Merge Sort : ',Merge_SPST,'\n')
9696

9797
Merge_SPMT = {}
@@ -107,7 +107,7 @@
107107
Merge_SPMT['HundredThousand'] = time.total_seconds()
108108
print('SPMT Merge Sort HundredThousand Done')
109109
except:
110-
Merge_SPMT['HundredThousand'] = -1
110+
Merge_SPMT['HundredThousand'] = 0
111111
print('SPMT Sort HundredThousand Failed')
112112
try:
113113
print('SPMT Merge Sort OneMillion Begin')
@@ -120,7 +120,7 @@
120120
Merge_SPMT['OneMillion'] = time.total_seconds()
121121
print('SPMT Merge Sort OneMillion Done')
122122
except:
123-
Merge_SPMT['OneMillion'] = -1
123+
Merge_SPMT['OneMillion'] = 0
124124
print('SPMTg Merge Sort OneMillion Failed')
125125
try:
126126
print('SPMT Merge Sort TenMillion Begin')
@@ -133,7 +133,7 @@
133133
Merge_SPMT['TenMillion'] = time.total_seconds()
134134
print('SPMT Merge Sort TenMillion Done')
135135
except:
136-
Merge_SPMT['TenMillion'] = -1
136+
Merge_SPMT['TenMillion'] = 0
137137
print('SPMT Merge Sort TenMillion Failed')
138138
try:
139139
print('SPMT Merge Sort FiftyMillion Begin')
@@ -146,7 +146,7 @@
146146
Merge_SPMT['FiftyMillion'] = time.total_seconds()
147147
print('SPMT Merge Sort FiftyMillion Done')
148148
except:
149-
Merge_SPMT['FiftyMillion'] = -1
149+
Merge_SPMT['FiftyMillion'] = 0
150150
print('SPMT Merge Sort FiftyMillion Failed')
151151
try:
152152
print('SPMT Merge Sort HundredMillion Begin')
@@ -159,7 +159,7 @@
159159
Merge_SPMT['HundredMillion'] = time.total_seconds()
160160
print('SPMT Merge Sort HundredMillion Done')
161161
except:
162-
Merge_SPMT['HundredMillion'] = -1
162+
Merge_SPMT['HundredMillion'] = 0
163163
print('SPMT Merge Sort : ',Merge_SPMT,'\n')
164164

165165
Merge_MPMT = {}
@@ -175,7 +175,7 @@
175175
Merge_MPMT['HundredThousand'] = time.total_seconds()
176176
print('MPMT Merge Sort HundredThousand Done')
177177
except:
178-
Merge_MPMT['HundredThousand'] = -1
178+
Merge_MPMT['HundredThousand'] = 0
179179
print('MPMT Merge Sort HundredThousand Failed')
180180
try:
181181
print('MPMT Merge Sort OneMillion Begin')
@@ -188,7 +188,7 @@
188188
Merge_MPMT['OneMillion'] = time.total_seconds()
189189
print('MPMT Merge Sort OneMillion Done')
190190
except:
191-
Merge_MPMT['OneMillion'] = -1
191+
Merge_MPMT['OneMillion'] = 0
192192
print('MPMT Merge Sort OneMillion Failed')
193193
try:
194194
print('MPMT Merge Sort TenMillion Begin')
@@ -201,7 +201,7 @@
201201
Merge_MPMT['TenMillion'] = time.total_seconds()
202202
print('MPMT Merge Sort TenMillion Done')
203203
except:
204-
Merge_MPMT['TenMillion'] = -1
204+
Merge_MPMT['TenMillion'] = 0
205205
print('MPMT Merge Sort TenMillion Failed')
206206
try:
207207
print('MPMT Merge Sort FiftyMillion Begin')
@@ -214,7 +214,7 @@
214214
Merge_MPMT['FiftyMillion'] = time.total_seconds()
215215
print('MPMT Merge Sort FiftyMillion Done')
216216
except:
217-
Merge_MPMT['FiftyMillion'] = -1
217+
Merge_MPMT['FiftyMillion'] = 0
218218
print('MPMT Merge Sort FiftyMillion Failed')
219219
try:
220220
print('MPMT Merge Sort HundredMillion Begin')
@@ -227,13 +227,149 @@
227227
Merge_MPMT['HundredMillion'] = time.total_seconds()
228228
print('MPMT Merge Sort HundredMillion Done')
229229
except:
230-
Merge_MPMT['HundredMillion'] = -1
230+
Merge_MPMT['HundredMillion'] = 0
231231
print('MPMT Merge Sort HundredMillion Failed')
232232
print('MPMT Merge Sort : ',Merge_MPMT,'\n')
233233

234-
print('''\nSPST Quick Sort Failed due to Segmentation fault (core dumped)\nSPMT Quick Sort Failed due to Segmentation fault (core dumped)\n\n''')
234+
Quick_SPST = {}
235+
# Single-Process Single-Thread Quick Sort
236+
try:
237+
print('SPST Quick Sort HundredThousand Begin')
238+
data = HundredThousand
239+
start = datetime.now()
240+
quickSort(data,False,False)
241+
end = datetime.now()
242+
time = end - start
243+
del data
244+
Quick_SPST['HundredThousand'] = time.total_seconds()
245+
print('SPST Quick Sort HundredThousand Done')
246+
except:
247+
Quick_SPST['HundredThousand'] = 0
248+
print('SPST Quick Sort HundredThousand Failed')
249+
try:
250+
print('SPST Quick Sort OneMillion Begin')
251+
data = OneMillion
252+
start = datetime.now()
253+
quickSort(data,False,False)
254+
end = datetime.now()
255+
time = end - start
256+
del data
257+
Quick_SPST['OneMillion'] = time.total_seconds()
258+
print('SPST Quick Sort OneMillion Done')
259+
except:
260+
Quick_SPST['OneMillion'] = 0
261+
print('SPST Quick Sort OneMillion Failed')
262+
try:
263+
print('SPST Quick Sort TenMillion Begin')
264+
data = TenMillion
265+
start = datetime.now()
266+
quickSort(data,False,False)
267+
end = datetime.now()
268+
time = end - start
269+
del data
270+
Quick_SPST['TenMillion'] = time.total_seconds()
271+
print('SPST Quick Sort TenMillion Done')
272+
except:
273+
Quick_SPST['TenMillion'] = 0
274+
print('SPST Quick Sort TenMillion Failed')
275+
try:
276+
print('SPST Quick Sort FiftyMillion Begin')
277+
data = FiftyMillion
278+
start = datetime.now()
279+
quickSort(data,False,False)
280+
end = datetime.now()
281+
time = end - start
282+
del data
283+
Quick_SPST['FiftyMillion'] = time.total_seconds()
284+
print('SPST Quick Sort FiftyMillion Done')
285+
except:
286+
Quick_SPST['FiftyMillion'] = 0
287+
print('SPST Quick Sort FiftyMillion Failed')
288+
try:
289+
print('SPST Quick Sort HundredMillion Begin')
290+
data = HundredMillion
291+
start = datetime.now()
292+
quickSort(data,False,False)
293+
end = datetime.now()
294+
time = end - start
295+
del data
296+
Quick_SPST['HundredMillion'] = time.total_seconds()
297+
print('SPST Quick Sort HundredMillion Done')
298+
except:
299+
Quick_SPST['HundredMillion'] = 0
300+
print('SPST Quick Sort HundredMillion Failed')
301+
print('SPST Quick Sort : ',Quick_SPST,'\n')
302+
303+
Quick_SPMT = {}
304+
# Single-Process Multi-Thread Quick Sort
305+
try:
306+
print('SPMT Quick Sort HundredThousand Begin')
307+
data = HundredThousand
308+
start = datetime.now()
309+
quickSort(data,False,True)
310+
end = datetime.now()
311+
time = end - start
312+
del data
313+
Quick_SPMT['HundredThousand'] = time.total_seconds()
314+
print('SPMT Quick Sort HundredThousand Done')
315+
except:
316+
Quick_SPMT['HundredThousand'] = 0
317+
print('SPMT Quick Sort HundredThousand Failed')
318+
try:
319+
print('SPMT Quick Sort OneMillion Begin')
320+
data = OneMillion
321+
start = datetime.now()
322+
quickSort(data,False,True)
323+
end = datetime.now()
324+
time = end - start
325+
del data
326+
Quick_SPMT['OneMillion'] = time.total_seconds()
327+
print('SPMT Quick Sort OneMillion Done')
328+
except:
329+
Quick_SPMT['OneMillion'] = 0
330+
print('SPMT Quick Sort OneMillion Failed')
331+
try:
332+
print('SPMT Quick Sort TenMillion Begin')
333+
data = TenMillion
334+
start = datetime.now()
335+
quickSort(data,False,True)
336+
end = datetime.now()
337+
time = end - start
338+
del data
339+
Quick_SPMT['TenMillion'] = time.total_seconds()
340+
print('SPMT Quick Sort TenMillion Done')
341+
except:
342+
Quick_SPMT['TenMillion'] = 0
343+
print('SPMT Quick Sort TenMillion Failed')
344+
try:
345+
print('SPMT Quick Sort FiftyMillion Begin')
346+
data = FiftyMillion
347+
start = datetime.now()
348+
quickSort(data,False,True)
349+
end = datetime.now()
350+
time = end - start
351+
del data
352+
Quick_SPMT['FiftyMillion'] = time.total_seconds()
353+
print('SPMT Quick Sort FiftyMillion Done')
354+
except:
355+
Quick_SPMT['FiftyMillion'] = 0
356+
print('SPMT Quick Sort FiftyMillion Failed')
357+
try:
358+
print('SPMT Quick Sort HundredMillion Begin')
359+
data = HundredMillion
360+
start = datetime.now()
361+
quickSort(data,False,True)
362+
end = datetime.now()
363+
time = end - start
364+
del data
365+
Quick_SPMT['HundredMillion'] = time.total_seconds()
366+
print('SPMT Quick Sort HundredMillion Done')
367+
except:
368+
Quick_SPMT['HundredMillion'] = 0
369+
print('SPMT Quick Sort HundredMillion Failed')
370+
print('SPMT Quick Sort : ',Quick_SPMT,'\n')
235371

236-
Quick_MPMT = {}
372+
Quick_MPMT= {}
237373
# Multi-Process Multi-Thread Quick Sort
238374
try:
239375
print('MPMT Quick Sort HundredThousand Begin')
@@ -246,7 +382,7 @@
246382
Quick_MPMT['HundredThousand'] = time.total_seconds()
247383
print('MPMT Quick Sort HundredThousand Done')
248384
except:
249-
Quick_MPMT['HundredThousand'] = -1
385+
Quick_MPMT['HundredThousand'] = 0
250386
print('MPMT Quick Sort HundredThousand Failed')
251387
try:
252388
print('MPMT Quick Sort OneMillion Begin')
@@ -259,7 +395,7 @@
259395
Quick_MPMT['OneMillion'] = time.total_seconds()
260396
print('MPMT Quick Sort OneMillion Done')
261397
except:
262-
Quick_MPMT['OneMillion'] = -1
398+
Quick_MPMT['OneMillion'] = 0
263399
print('MPMT Quick Sort OneMillion Failed')
264400
try:
265401
print('MPMT Quick Sort TenMillion Begin')
@@ -272,7 +408,7 @@
272408
Quick_MPMT['TenMillion'] = time.total_seconds()
273409
print('MPMT Quick Sort TenMillion Done')
274410
except:
275-
Quick_MPMT['TenMillion'] = -1
411+
Quick_MPMT['TenMillion'] = 0
276412
print('MPMT Quick Sort TenMillion Failed')
277413
try:
278414
print('MPMT Quick Sort FiftyMillion Begin')
@@ -285,7 +421,7 @@
285421
Quick_MPMT['FiftyMillion'] = time.total_seconds()
286422
print('MPMT Quick Sort FiftyMillion Done')
287423
except:
288-
Quick_MPMT['FiftyMillion'] = -1
424+
Quick_MPMT['FiftyMillion'] = 0
289425
print('MPMT Quick Sort FiftyMillion Failed')
290426
try:
291427
print('MPMT Quick Sort HundredMillion Begin')
@@ -298,7 +434,7 @@
298434
Quick_MPMT['HundredMillion'] = time.total_seconds()
299435
print('MPMT Quick Sort HundredMillion Done')
300436
except:
301-
Quick_MPMT['HundredMillion'] = -1
437+
Quick_MPMT['HundredMillion'] = 0
302438
print('MPMT Quick Sort HundredMillion Failed')
303439
print('MPMT Quick Sort : ',Quick_MPMT,'\n')
304440

@@ -307,17 +443,19 @@
307443
x = ['Hundred Thousand','One Million','Ten Million','Fifty Million','Hundred Million']
308444
y0 = [0 for _ in range(len(x))]
309445

446+
Quick_SPST = [Quick_SPST['HundredThousand'],Quick_SPST['OneMillion'],Quick_SPST['TenMillion'],Quick_SPST['FiftyMillion'],Quick_SPST['HundredMillion']]
447+
Quick_SPMT = [Quick_SPMT['HundredThousand'],Quick_SPMT['OneMillion'],Quick_SPMT['TenMillion'],Quick_SPMT['FiftyMillion'],Quick_SPMT['HundredMillion']]
310448
Quick_MPMT = [Quick_MPMT['HundredThousand'],Quick_MPMT['OneMillion'],Quick_MPMT['TenMillion'],Quick_MPMT['FiftyMillion'],Quick_MPMT['HundredMillion']]
311449
Merge_SPST = [Merge_SPST['HundredThousand'],Merge_SPST['OneMillion'],Merge_SPST['TenMillion'],Merge_SPST['FiftyMillion'],Merge_SPST['HundredMillion']]
312450
Merge_SPMT = [Merge_SPMT['HundredThousand'],Merge_SPMT['OneMillion'],Merge_SPMT['TenMillion'],Merge_SPMT['FiftyMillion'],Merge_SPMT['HundredMillion']]
313451
Merge_MPMT = [Merge_MPMT['HundredThousand'],Merge_MPMT['OneMillion'],Merge_MPMT['TenMillion'],Merge_MPMT['FiftyMillion'],Merge_MPMT['HundredMillion']]
314452

315-
plt.plot(x, y0, color='red', linestyle='dotted', label='Single-Process Single-Thread Quick Sort')
316-
plt.plot(x, y0, color='blue', linestyle='dotted', label='Single-Process Multi-Thread Quick Sort')
453+
plt.plot(x, Quick_SPST, color='red', linestyle='dotted', label='Single-Process Single-Thread Quick Sort')
454+
plt.plot(x, Quick_SPMT, color='blue', linestyle='dotted', label='Single-Process Multi-Thread Quick Sort')
317455
plt.plot(x, Quick_MPMT, color='green', linestyle='dotted', label='Multi-Process Multi-Thread Quick Sort')
318-
plt.plot(x, Merge_SPST, color='red', linestyle='dashed', label='Single-Process Single-Thread Merge Sort')
319-
plt.plot(x, Merge_SPMT, color='blue', linestyle='dashed', label='Single-Process Multi-Thread Merge Sort')
320-
plt.plot(x, Merge_MPMT, color='green', linestyle='dashed', label='Multi-Process Multi-Thread Merge Sort')
456+
plt.plot(x, Merge_SPST, color='red', label='Single-Process Single-Thread Merge Sort')
457+
plt.plot(x, Merge_SPMT, color='blue', label='Single-Process Multi-Thread Merge Sort')
458+
plt.plot(x, Merge_MPMT, color='green', label='Multi-Process Multi-Thread Merge Sort')
321459
plt.xlabel('Number of Integers to Sort')
322460
plt.ylabel('Time Taken in Seconds')
323461
plt.legend()

0 commit comments

Comments
 (0)