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.
@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
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
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]))
hey buddy thanks for helping us and i coded my own version def selectionSort(l): indexLength = range(0,len(l) - 1) for i in indexLength: minvalue = i for j in range(i+1,len(l)): if l[j] < l[minvalue]: l[j],l[minvalue] = l[minvalue],l[j] j = j -1 return l print(selectionSort([1,3,0])) this works for me!
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 .
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)
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?
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!
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.
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!
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
4 years later and you are literally saving my life
Such a gift for teaching
Thank you
I wish I have teachers like him at my college
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.
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 :)
this is absolutely the best series on algorithms, I struggled a lot watching other videos, but this is really amazing, clear and short.
Still loving this video two years later Derrick!
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]
This tutorial is incredible. Thank you for teaching it so effectively
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.
i have to admit.. I love your short but badass bass music at the intro..
Dude!!! Derrick this is so awesome. you make these concepts so easy to learn. Keep it up!!!
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
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
Pls teach all of those fundamental algorithms. Thanks
You're an amazing teacher.......your videos are very helpful.... Thanks
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!
Thanks bro, I have an exam tomorrow. And this is really gonna help.
hey buddy thanks for helping us
and i coded my own version
def selectionSort(l):
indexLength = range(0,len(l) - 1)
for i in indexLength:
minvalue = i
for j in range(i+1,len(l)):
if l[j] < l[minvalue]:
l[j],l[minvalue] = l[minvalue],l[j]
j = j -1
return l
print(selectionSort([1,3,0]))
this works for me!
Love from India - Thanks
Great tutorial! Easy to grasp the concepts.. Subbed!
I like the new intro and the outro! Content is also great!
you are the coolest guy ever man, thanks so much
Nice video like it's really cool.
Fire on bruv!
Thank you so much!
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 think calling min_value index_of_min_value could make it clearer, took me a while to figure it out :-)
Agreed.
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)
please make more videos on python..on what's after algorithms
awesome explanation!
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]
Really really easy explained I love u
How do you calculate time complexity
great explanation
I am a beginner with Python, which programming evironment is that?
hey can you plz tell me a program for to rotate a matrix 90 degree anti-clockwise
Would the result be different if we used indexing_length = range(0, len(list_a))?
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?
thanks man you saved me
Line 7: Should the min_value be equal to list_a[ i ]???
Please answer
Hey, amazing video and so beautiful explanation, but I have a question hehe How do you do your animations?
Which software you are using for this video editing
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!
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.
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.
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.
best explanation..
Thanks for the video
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!
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!
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
Good stuff. Thanks
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
thank you for making this :0
bro can you do more videos like this...
thanks sir
iam from wkwkw island
What do i and j stand for?
Those are the counter variables
Isn't the min_val != i : is redundant?
yes its not necessary
David Bowie teaching CS
Derrick stop it you're scaring me
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