Yeah, you're really talented at teaching. Believe me when I say you've got a real gift. And thank you for sharing it because you don't know how daunting this concept was to me when hearing it from other instructors.
Sorry to be off topic but does anybody know a way to log back into an Instagram account?? I was stupid forgot the password. I love any assistance you can give me
@Kason Trevor thanks so much for your reply. I found the site through google and Im waiting for the hacking stuff now. Looks like it's gonna take quite some time so I will reply here later when my account password hopefully is recovered.
Your videos as terrific, thank you. Below is what I came up with - it is almost twice as fast as your code. Why is that?? def selection_sort(unsorted_list): sorted_list = [] while len(unsorted_list) > 0: min_index, min = 0, unsorted_list[0] for i in range(0, (len(unsorted_list) - 1)): if unsorted_list[i] < min: min_index, min = i, unsorted_list[i] sorted_list.append(unsorted_list.pop(min_index)) return sorted_list
@Maryam Ashraf Below is what I did to test - setup params for "my_range" and "num_elements", or do like I did and make these arguments to your script with sys.argv. import sys import time import random my_range = int(sys.argv[1]) num_elements = int(sys.argv[2]) my_array = [random.randint(1, my_range) for i in range(0, num_elements)] start_time = time.time() bubble_sorted_array = list(bubble_sort(my_array)) bubble_sort_run_time = time.time() - start_time start_time = time.time() selection_sorted_array = list(selection_sort(my_array)) selection_sort_run_time = time.time() - start_time selection_sort_efficiency = bubble_sort_run_time / selection_sort_run_time print("bubble sort took {:.2f} seconds to run".format(bubble_sort_run_time)) print("selection sort took {:.2f} seconds to run".format(selection_sort_run_time)) print("selection sort was {:.2f} times more efficient than bubble sort".format(selection_sort_efficiency)) HTH
Hi Derrick, first of all I would like to thank you for your videos. They are helping me a lot! I think I found an indentation error inside your script in your githup area. The "if min_value !=1" is not indented with the "for j", and this can cause some sort errors if the first element of the list is equal to the last element. thanks! for j in range(i+1, len(list_a)): if list_a[j] < list_a[min_value]: min_value = j if min_value != i: list_a[min_value], list_a[i] = list_a[i], list_a[min_value] return list_a print(selection_sort([6,7,8,7,6,5,4,5,6,7,6,7,8,9,7,9,0]))
A basic question. How come the 'changing position' could work? such as list[j], list[i] = list[i], list[j]. The first assignment should change list[j], the the second assignment will come back to i, isn't it? Has python put some secrete third item to keep the value temporarily? I am a learner on Python:) Thank you very much in advance
its swapping the expression: “ a, b = b, a”, first right gets assigned to first left and second right get assigned to second left at the same time therefore swap values of a and b Search for one liner swapping in python you will get it!
I did it another way i don't know if it's selection sort def selectionsort(mylist): indexing_length = len(mylist) sorted = [] if indexing_length mylist[value]: min = mylist[value] mylist[0], mylist[value] = mylist[value] , mylist[0] mylist.pop(0) notsorted = mylist sorted.append(min) return sorted + selectionsort(notsorted)
Awesome Derrick, Have you considered a video for Regular Expressions to find data over large files, It is just an idea, thanks again, and keep sharing your knowledge .
When I measure the time it takes to sort with bubble vs selection, selection always takes longer to execute. How is selection better than bubble if bubble takes less time and there's 2 for loops in selection sort which leads to higher complexity O(n^2)? Otherwise, fantastic and simple videos to learn from.
Thanks for your videos. Will this code be shorter? (prints really help to see the work of the two cycles) for k in range(0,n-1): print('for cycle, k: ', k) for x in range(1, n): print("for cycle, x:",x,a) if a[k] > a[x] and x > k: a[k], a[x] = a[x], a[k]
I don’t get why indexing length only goes to second last item in unsourced list. What if the item in the unworried list is smaller than the previous minimum value?
Hi Derrick thanks for your videos. I solved in a recursive way, take a look! def selection_sort(lista,sortedd):
if len(lista) !=0: mini=lista[0] for i in lista[1:]: mini=min(mini,i) sortedd.append(mini) lista.remove(mini)
selection_sort(lista,sortedd)
return sortedd def sorting(lista): return selection_sort(lista,[]) a=[3,3,54,2345,542,456,0,3,4,4,3,6] sorting(a) The problem is that my function requires 2 args, thats why I had to implement the second function. Is there a way to do it this way with only one function? Thanks!
its swapping the expression: “ a, b = b, a”, first right gets assigned to first left and second right get assigned to second left at the same time therefore swap values of a and b Search for one liner swapping in python you will get it!
thank you for effort Derrick , can you help me with this issue (I have a file of 1000 images and i want to classify it at specific folders i already created for example : from pic 1 to 10 move to folder number 1 and from 12 to 15 to folder number 2 etc ....)I'm biggner on python if you help me I really appreciated it .
I have to say you explain well but not for a beginner, I already knew all these concepts and needed a recap and tbh i found your teaching a bit too quick, you need to explain slowly and in more detail
I wish I have teachers like him at my college
4 years later and you are literally saving my life
Such a gift for teaching
Thank you
Yeah, you're really talented at teaching. Believe me when I say you've got a real gift. And thank you for sharing it because you don't know how daunting this concept was to me when hearing it from other instructors.
this is absolutely the best series on algorithms, I struggled a lot watching other videos, but this is really amazing, clear and short.
Hey Derrick this is the best Algorithm Playlist I ever came across
So please it's a humble request to make more videos on Algorithm
Sorry to be off topic but does anybody know a way to log back into an Instagram account??
I was stupid forgot the password. I love any assistance you can give me
@Thatcher Kane instablaster =)
@Kason Trevor thanks so much for your reply. I found the site through google and Im waiting for the hacking stuff now.
Looks like it's gonna take quite some time so I will reply here later when my account password hopefully is recovered.
@Kason Trevor it did the trick and I now got access to my account again. I'm so happy!
Thank you so much you saved my account !
@Thatcher Kane Glad I could help :)
def selection_sort(list_a):
indexing_length=range(len(list_a)-1)
for i in indexing_length:
min_value=i
for j in range(i+1,len(list_a)):
if list_a[j]
Still loving this video two years later Derrick!
This tutorial is incredible. Thank you for teaching it so effectively
Pls teach all of those fundamental algorithms. Thanks
Your videos as terrific, thank you. Below is what I came up with - it is almost twice as fast as your code. Why is that??
def selection_sort(unsorted_list):
sorted_list = []
while len(unsorted_list) > 0:
min_index, min = 0, unsorted_list[0]
for i in range(0, (len(unsorted_list) - 1)):
if unsorted_list[i] < min:
min_index, min = i, unsorted_list[i]
sorted_list.append(unsorted_list.pop(min_index))
return sorted_list
You're an amazing teacher.......your videos are very helpful.... Thanks
i have to admit.. I love your short but badass bass music at the intro..
This is a great, amazing and super instructional video. My code for this algorithm is by far more complex. Love the code you created.
@Maryam Ashraf Below is what I did to test - setup params for "my_range" and "num_elements", or do like I did and make these arguments to your script with sys.argv.
import sys
import time
import random
my_range = int(sys.argv[1])
num_elements = int(sys.argv[2])
my_array = [random.randint(1, my_range) for i in range(0, num_elements)]
start_time = time.time()
bubble_sorted_array = list(bubble_sort(my_array))
bubble_sort_run_time = time.time() - start_time
start_time = time.time()
selection_sorted_array = list(selection_sort(my_array))
selection_sort_run_time = time.time() - start_time
selection_sort_efficiency = bubble_sort_run_time / selection_sort_run_time
print("bubble sort took {:.2f} seconds to run".format(bubble_sort_run_time))
print("selection sort took {:.2f} seconds to run".format(selection_sort_run_time))
print("selection sort was {:.2f} times more efficient than bubble sort".format(selection_sort_efficiency))
HTH
I always wonder, why my professor spends 50 mins lecture just to teach what you show in 5 mins. Thank you always.
Hi Derrick, first of all I would like to thank you for your videos. They are helping me a lot!
I think I found an indentation error inside your script in your githup area.
The "if min_value !=1" is not indented with the "for j", and this can cause some sort errors if the first element of the list is equal to the last element.
thanks!
for j in range(i+1, len(list_a)):
if list_a[j] < list_a[min_value]:
min_value = j
if min_value != i:
list_a[min_value], list_a[i] = list_a[i], list_a[min_value]
return list_a
print(selection_sort([6,7,8,7,6,5,4,5,6,7,6,7,8,9,7,9,0]))
this fixed my error!
Dude!!! Derrick this is so awesome. you make these concepts so easy to learn. Keep it up!!!
Thanks bro, I have an exam tomorrow. And this is really gonna help.
Love from India - Thanks
Here again for another alogorithm treat! Thanks buddy for yet again great video. Looking forward to look into the code on my comp later today
please make more videos on python..on what's after algorithms
A basic question. How come the 'changing position' could work? such as list[j], list[i] = list[i], list[j]. The first assignment should change list[j], the the second assignment will come back to i, isn't it? Has python put some secrete third item to keep the value temporarily? I am a learner on Python:) Thank you very much in advance
its swapping the expression: “ a, b = b, a”, first right gets assigned to first left and second right get assigned to second left at the same time therefore swap values of a and b
Search for one liner swapping in python you will get it!
you are the coolest guy ever man, thanks so much
I think calling min_value index_of_min_value could make it clearer, took me a while to figure it out :-)
Agreed.
Great tutorial! Easy to grasp the concepts.. Subbed!
I did it another way i don't know if it's selection sort
def selectionsort(mylist):
indexing_length = len(mylist)
sorted = []
if indexing_length mylist[value]:
min = mylist[value]
mylist[0], mylist[value] = mylist[value] , mylist[0]
mylist.pop(0)
notsorted = mylist
sorted.append(min)
return sorted + selectionsort(notsorted)
Awesome Derrick, Have you considered a video for Regular Expressions to find data over large files, It is just an idea, thanks again, and keep sharing your knowledge .
I like the new intro and the outro! Content is also great!
Thank you so much!
awesome explanation!
Really really easy explained I love u
When I measure the time it takes to sort with bubble vs selection, selection always takes longer to execute. How is selection better than bubble if bubble takes less time and there's 2 for loops in selection sort which leads to higher complexity O(n^2)? Otherwise, fantastic and simple videos to learn from.
great explanation
How do you calculate time complexity
Nice video like it's really cool.
Fire on bruv!
Thanks for your videos.
Will this code be shorter? (prints really help to see the work of the two cycles)
for k in range(0,n-1):
print('for cycle, k: ', k)
for x in range(1, n):
print("for cycle, x:",x,a)
if a[k] > a[x] and x > k:
a[k], a[x] = a[x], a[k]
Would the result be different if we used indexing_length = range(0, len(list_a))?
bro can you do more videos like this...
Hey, amazing video and so beautiful explanation, but I have a question hehe How do you do your animations?
thanks man you saved me
Line 7: Should the min_value be equal to list_a[ i ]???
Please answer
Which software you are using for this video editing
I don’t get why indexing length only goes to second last item in unsourced list. What if the item in the unworried list is smaller than the previous minimum value?
hey can you plz tell me a program for to rotate a matrix 90 degree anti-clockwise
Please I don't understand the logic behind.the last part. If the min_value != i . Please I need an explanation
It's not required actually u can just simply write the switch statement and it would still work.
Hey Bro You have wrong code
if you put [ '1', '4', '19']
output will be [ '1', '19' , '4']
No. The code is absolutely fine. You must've implemented it wrong.
his code is the problem to fix it just add
if min_value != i:
list_a[min_value], list_a[i] = list_a[i], list_a[min_value]
min_value = i
I am a beginner with Python, which programming evironment is that?
Hi Derrick thanks for your videos. I solved in a recursive way, take a look!
def selection_sort(lista,sortedd):
if len(lista) !=0:
mini=lista[0]
for i in lista[1:]:
mini=min(mini,i)
sortedd.append(mini)
lista.remove(mini)
selection_sort(lista,sortedd)
return sortedd
def sorting(lista):
return selection_sort(lista,[])
a=[3,3,54,2345,542,456,0,3,4,4,3,6]
sorting(a)
The problem is that my function requires 2 args, thats why I had to implement the second function. Is there a way to do it this way with only one function? Thanks!
can someone explain what this line does? its line 14 in his code
list_a[min_value],list_a[i]=list_a[i],list_a[min_value]
its swapping the expression: “ a, b = b, a”, first right gets assigned to first left and second right get assigned to second left at the same time therefore swap values of a and b
Search for one liner swapping in python you will get it!
best explanation..
thank you for effort Derrick , can you help me with this issue (I have a file of 1000 images and i want to classify it at specific folders i already created for example : from pic 1 to 10 move to folder number 1 and from 12 to 15 to folder number 2 etc ....)I'm biggner on python if you help me I really appreciated it .
Hi! Good lessons!
your code isnt working for [3,1,2,5,4] this input .
it shows the output as [2,1,3,4,5]
You need to write the switch statement outside the 2nd for loop.
I know it's late but I hope you will find it useful.
Thanks for the video
when we changed iMin = j does that change the iMin value or the value stored at list[iMin]?
imin value whereas list[imin]=j changes value in the list to value of j
thanks sir
iam from wkwkw island
Good stuff. Thanks
Isn't the min_val != i : is redundant?
yes its not necessary
David Bowie teaching CS
Derrick stop it you're scaring me
thank you for making this :0
What do i and j stand for?
Those are the counter variables
❤👌
Cool!
ahhh....The algorithm doesn't work.
lmao, why is his code sooo easy to understand!
👍
You have beautiful eyes man
bro look like rizzler
I have to say you explain well but not for a beginner, I already knew all these concepts and needed a recap and tbh i found your teaching a bit too quick, you need to explain slowly and in more detail