@@ -37,10 +37,10 @@ def __init__(self, root, title) -> None:
37
37
self .start .grid (column = 5 ,row = 2 ,padx = 5 ,pady = 5 )
38
38
39
39
ttk .Label (self .root ,text = 'Speed & Array Size:' ).grid (row = 2 ,column = 0 )
40
- self .timespan = ttk .Scale (self .root ,from_ = 1 ,to = 1000 ,value = 0.1 ,style = 'success.Horizontal.TScale' ,length = 250 ,
40
+ self .timespan = ttk .Scale (self .root ,from_ = 1 ,to = 1000 ,value = 0.2 ,style = 'success.Horizontal.TScale' ,length = 250 ,
41
41
command = lambda x :self .slide_function ())
42
42
self .timespan .grid (row = 2 ,column = 1 ,columnspan = 2 )
43
- self .arraysize = ttk .Scale (self .root ,from_ = 6 ,to = 120 ,length = 250 ,style = 'success.Horizontal.TScale' ,value = 30 ,
43
+ self .arraysize = ttk .Scale (self .root ,from_ = 6 ,to = 120 ,length = 250 ,style = 'success.Horizontal.TScale' ,value = 10 ,
44
44
command = lambda x :self .slide_function ())
45
45
self .arraysize .grid (row = 2 ,column = 3 ,columnspan = 2 )
46
46
@@ -57,9 +57,9 @@ def __init__(self, root, title) -> None:
57
57
58
58
# some constants
59
59
self .speed = 0.2
60
- self .N = 30
60
+ self .N = 10
61
61
self .colours = ['dodgerblue' for i in range (self .N )]
62
- N = 30
62
+ N = self . N
63
63
self .data = np .linspace (5 ,400 ,N ,dtype = np .uint16 )
64
64
np .random .shuffle (self .data )
65
65
self .display (N ,self .data ,self .colours )
@@ -200,23 +200,29 @@ def start(self):
200
200
if self .st ['bubble' ]is True :
201
201
for i in range (self .N - 1 ):
202
202
for j in range (self .N - 1 - i ):
203
+ self .display (self .N ,self .data ,['purple' if a == j or a == j + 1 else 'green' if a > self .N - 1 - i else 'dodgerblue' for a in range (self .N )])
204
+ time .sleep (self .speed )
203
205
if self .data [j ]> self .data [j + 1 ]:
206
+ self .display (self .N ,self .data ,['red' if a == j or a == j + 1 else 'green' if a > self .N - 1 - i else 'dodgerblue' for a in range (self .N )])
207
+ time .sleep (self .speed )
204
208
self .data [j ],self .data [j + 1 ]= self .data [j + 1 ],self .data [j ]
205
- self .display (self .N ,self .data ,['purple ' if a == j or a == j + 1 else 'green' if a > self .N - 1 - i else 'dodgerblue' for a in range (self .N )])
209
+ self .display (self .N ,self .data ,['lime ' if a == j or a == j + 1 else 'green' if a > self .N - 1 - i else 'dodgerblue' for a in range (self .N )])
206
210
time .sleep (self .speed )
207
- self .display (self .N ,self .data ,['green ' for _ in range (self .N )])
211
+ self .display (self .N ,self .data ,['lime ' for _ in range (self .N )])
208
212
209
213
elif self .st ['insertion' ]is True :
210
214
for j in range (1 ,len (self .data )):
211
215
key = self .data [j ]
212
216
i = j - 1
217
+ self .display (self .N ,self .data ,['purple' if a == i or a == i + 1 else 'green' if a <= j else 'dodgerblue' for a in range (self .N )])
218
+ time .sleep (self .speed )
213
219
while i >= 0 and self .data [i ]> key :
214
220
self .data [i + 1 ]= self .data [i ]
215
- i -= 1
216
- self .display (self .N ,self .data ,['purple' if a == j or a == j + 1 else 'green' if a <= j else 'dodgerblue' for a in range (self .N )])
221
+ self .display (self .N ,self .data ,['yellow' if a == i else 'green' if a <= j else 'dodgerblue' for a in range (self .N )])
217
222
time .sleep (self .speed )
223
+ i -= 1
218
224
self .data [i + 1 ]= key
219
- self .display (self .N ,self .data ,['green ' for _ in range (self .N )])
225
+ self .display (self .N ,self .data ,['lime ' for _ in range (self .N )])
220
226
221
227
elif self .st ['selection' ]is True :
222
228
for i in range (len (self .data )- 1 ):
@@ -229,16 +235,16 @@ def start(self):
229
235
min_index = j
230
236
if min_index != i :
231
237
self .data [i ],self .data [min_index ]= self .data [min_index ],self .data [i ]
232
- self .display (self .N ,self .data ,['green ' for _ in range (self .N )])
238
+ self .display (self .N ,self .data ,['lime ' for _ in range (self .N )])
233
239
234
240
235
241
elif self .st ['merge' ]is True :
236
242
self .mergesort (self .data ,0 ,self .N - 1 )
237
- self .display (self .N ,self .data ,['green ' for _ in range (self .N )])
243
+ self .display (self .N ,self .data ,['lime ' for _ in range (self .N )])
238
244
239
245
elif self .st ['quick' ]is True :
240
246
self .quicksort (self .data ,0 ,self .N - 1 )
241
- self .display (self .N ,self .data ,['green ' for _ in range (self .N )])
247
+ self .display (self .N ,self .data ,['lime ' for _ in range (self .N )])
242
248
243
249
else :
244
250
#show messege box