There are thousands of python tutorials on the internet but this dude has the attitude of "keep it simple , stupid" which suits me fine as a beginner who asks stupid questions. Thank you👏
@@Impedance_Z people go to Indians for tutorial ❌ people go to Indian tutorial ✅ The meaning of both the things is correct but according to what you want to say, I said it is correct, And you said that it sounds difficult to read and listen to. 👍
Nice, you kept it very simple. A quick improvement tip: in every outer loop you can actually decrease the index length since bubblesprt always sorts the biggest element each iteration.
Fell in love with the way, you explain things. It's easy to grasp. Please keep posting the videos. (if possible , could you please post a video on recursion and how to apply it in different scenarios). Thank You
Bro u are an absolute legend. I was trying to learn this from my teacher but did not understand anything but after watching this video I have no more doubt. TYSM
I was lost and unable to code this until I watched your video, I am very thankful for the help you've provided me! I am looking forward to using your channel to learn more.
Really a fan of your videos. Well presented every time and it keeps getting better and better. Keep up the good work. This series seems very interesting. Cheers!
Great tutorial, please continue uploading more Algorithms, Data Structures, and Interview coding challenges. def bubble_sort(arr): ordered = False length = len(arr) - 1 while not ordered: ordered = True for i in range(length): if arr[i] > arr[i+1]: ordered = False arr[i], arr[i+1] = arr[i+1], arr[i] return arr print(bubble_sort([65,677,55,45,0,3,1]))
there's another way without the sorted boolean. ________________________________________________ def bubble_sort(arr) n = len(arr) for in range(n): for j in range(n - i -1): # notice the -1 here also if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] #swaps here if needed #example numbers = [5,2,8,12,1] bubble_sort(numbers) print(numbers) #output will be [1,2,3,8,12]
Hi Derrick , please start making video from begging for python!. You really explain the bubble sort very clearly.Please make more videos in python programming. Thanks
Thanks for the video: This is mine: unslist = [3,7,2,6,4,9,1,5,1] totlist = [ ] j =0 while True: for i in range(len(unslist)-1): if unslist[i]>unslist[i+1]: unslist[i],unslist[i+1]=unslist[i+1],unslist[i] else: continue totlist.append(unslist) if len(totlist)>len(unslist)-2: if totlist[len(totlist)-1] == totlist[-1]: break print(unslist)
Great video! Simply explained. Just one thing you could use indexing_length=indexing_length-1 outside the for loop to improve the speed, as bubble sort keeps sorting the last element.
@Lucas M both seems fine but personally i find the nested for loop simpler to undestand since you do not need to think about any way to escape the while loop since there is none. Even if the while loop version of bubble sorting executes faster than the classic one, they are both inefficient for bigger lists. I created a program in c++ that puts 50000 random numbers in a list, then i measured the time for the bubble sort function and it took 70 seconds while quicksort function took 0.019 seconds lol
Hi. Thank you for the video. I didn’t get your mean for ‘while not sorted, sorted False and sorted True’. Could you please explain or suggest me a tutorial link for that? Thanks a lot again.
hope its not too late.. how this works is that the outer while loop, when initiated, assumes that the list is sorted, until it isn't, and this is verified by the inner for loop. This structure keeps the sorting going until eventually, the list becomes sorted
I took a different approach. "loop" is used in inner for loop bcoz we don't need to check the last elements after every iteration i.e if I have a list of 1000 elements, at the 500th iteration I would not be checking the last 500 elements and somehow tutorials missing this. def bubbleSort(unsorted): lst = list(unsorted) for loop in range(len(lst)-1): for num in range(len(lst)-1-loop): if lst[num] >= lst[num+1]: lst[num], lst[num+1] = lst[num+1], lst[num] return lst print(bubbleSort([5, 1, 3, 4, 2, 2, 5]))
Well, I had been messing up with the codes i get in my Book which is definitely not for beginners but it is preferred for them. Then comes your codes directly hits my brain and i catch it very easily. Ty for the codings. Plz come up with Data structure with python series. Thanks. Keep up the Good Work Sir
Regarding speed for vs. while in this case double for loop vs Derrick solution [code] def bubble_sort(arr): n = len(arr) for i in range(n): # Flag to check if any swaps are made in a pass swapped = False # Traverse through all array elements, excluding the last i elements for j in range(0, n-i-1): # Swap if the element found is greater than the next element if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] swapped = True # If no swaps were made in the pass, the list is already sorted if not swapped: break # Example usage: my_list = [64, 34, 25, 12, 22, 11, 90] bubble_sort(my_list) print("Sorted array:", my_list) [/code] I did test case with 9999 elements in array (random numbers between 1-9999) [code] import random # Set the seed for reproducibility (optional) random.seed(42) # Generate a random array with 9999 elements random_array = [random.randint(1, 9999) for _ in range(9999)] # Print the generated array print(random_array) [/code] Benchmark was done here, before i generated a random array with 9999 elements, c/p into main code and ran 3 times jupyter.org/try-jupyter/notebooks/?path=notebooks/Intro.ipynb Results: while loop was 68% slower (11.1 vs 6.6s) update2 Benchmark was done here too www.programiz.com/python-programming/online-compiler/ while loop was 44% slower (6.5 vs 4.5s) localhost benchmark: ide: PyCharm Community Edition 2023.2.3, python 3.12.0, win10 x64, cpu usage 10% max while loop 5.5s double for loop 3.4s while loop was 61% slower
Sorry, posted wrong code: [code] def bubble_sort(arr): n = len(arr) for i in range(n): # Flag to check if any swaps are made in a pass swapped = False # Traverse through all array elements, excluding the last i elements for j in range(0, n-i-1): # Swap if the element found is greater than the next element if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] swapped = True # If no swaps were made in the pass, the list is already sorted if not swapped: break # Example usage: my_list = [64, 34, 25, 12, 22, 11, 90] bubble_sort(my_list) print("Sorted array:", my_list) [/code]
One more thing, how to measure time add this into first two line of code: [code] import time start = time.time() def bubble_sort(arr): [/code] ... ... ... last three code line: [code] end = time.time() print(end - start) print("Sorted array:", my_list) [/code]
Thanks for informative videos. I want to write a code to transfer Excel tables and charts from my laptop to a website. Di you have a tutorial in this regard?
Down to earth individual no cockiness unlike some other python immature kids who think they run NASA on their own because they know they basics of python. You just got a subscriber.
Doesnt the way he structures where the booleans are make his loop run one too many times? He checks if the array is sorted BEFORE swapping the variables. After swapping the variables, the array might be sorted, so running through an extra time for no reason
well i did a little different here is my code def bubblesort(lst: list): for i in range(len(lst) - 1): for i in range(len(lst) - 1): if lst[i] >= lst[i+1]: lst[i], lst[i+1] = lst[i+1], lst[i] return lst
sorting list_a[3,5,1,-6,7,45,-3,8,0] in ascending order took 8 iterations but 25 iterations in descending order. Why? Any help will be appreciated. thanks
If there are flowchart, tracetable and pseudocode inclding in this video as well, it would be very helpful for some students who study computing foundation.
There are thousands of python tutorials on the internet but this dude has the attitude of "keep it simple , stupid" which suits me fine as a beginner who asks stupid questions. Thank you👏
Man, you're a godsend! Such a crisp and on-point elucidation, I've never felt anything clearer than this in my life!
yes
agree!
True
no kiddin
🫡
People go to indians for tutorial and I'm an indian coming to you for tutorial 😂
Bro first learn English
@@nasttygamer08 What was wrong in it could please enlighten me with my mistake?
@@Impedance_Z people go to Indians for tutorial ❌ people go to Indian tutorial ✅ The meaning of both the things is correct but according to what you want to say, I said it is correct, And you said that it sounds difficult to read and listen to. 👍
@@nasttygamer08 bruh yours sounds incomplete... Leave lil bro alone💀
@@nasttygamer08you have no right to tell someone to learn English when your grammar is no different from a 4 year old 😂😂
Nice, you kept it very simple.
A quick improvement tip: in every outer loop you can actually decrease the index length since bubblesprt always sorts the biggest element each iteration.
This is the first time of thousands, that I check a tutorial o YT and I see no troubles with me understanding it... Simple and easy! Thanks
same, this guy can explain the concept in the simple way and also in the short time
Same here, finally I get this clearly! Explaining the whole thing while writing code makes it super easy to understand.
Great video - very clearly explained and helped the penny drop very quickly!
Your way of teaching is simple, short, and understandable. Great job. Thanks a lot.
Fell in love with the way, you explain things. It's easy to grasp. Please keep posting the videos. (if possible , could you please post a video on recursion and how to apply it in different scenarios). Thank You
This is great stuff. Pls continue making videos
Boss I have solved the problem when you said to try it by myself. You are the extraordinary teacher I could ever find.
after 4 years this is by far the best video
Bro u are an absolute legend. I was trying to learn this from my teacher but did not understand anything but after watching this video I have no more doubt. TYSM
The easiest tutorial to follow, straight to the point, will definitely recommend this to my colleagues.
true
Been searching for so many explanations for sorting and I get it, but yours have been the easiest to understand by far. Godly!
I was lost and unable to code this until I watched your video, I am very thankful for the help you've provided me! I am looking forward to using your channel to learn more.
Great, short and straight to the point explanation!
Really a fan of your videos. Well presented every time and it keeps getting better and better. Keep up the good work. This series seems very interesting. Cheers!
Great tutorial, please continue uploading more Algorithms, Data Structures, and Interview coding challenges.
def bubble_sort(arr):
ordered = False
length = len(arr) - 1
while not ordered:
ordered = True
for i in range(length):
if arr[i] > arr[i+1]:
ordered = False
arr[i], arr[i+1] = arr[i+1], arr[i]
return arr
print(bubble_sort([65,677,55,45,0,3,1]))
In my opinion, this is a more elegant solution than the two for loops a lot of other videos suggest using. This makes more intuitive sense, thank you!
how tf is this dude not huge this shit is life saving
I was researching this algorithm, your code and explanation is so much more simple and I appreciate that.
Great explanation. I've been trying to wrap my head around this one for a minute.
I almost died trying to understand Bubble sort yesterday, this video explains it so clearly!
@derricksherill3511. I wish u could do more on DSA. I haven't understood these alogrithms with a lot of ease before you. Come back Legend.
there's another way without the sorted boolean.
________________________________________________
def bubble_sort(arr)
n = len(arr)
for in range(n):
for j in range(n - i -1): # notice the -1 here also
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j] #swaps here if needed
#example
numbers = [5,2,8,12,1]
bubble_sort(numbers)
print(numbers)
#output will be [1,2,3,8,12]
Hi Derrick , please start making video from begging for python!. You really explain the bubble sort very clearly.Please make more videos in python programming. Thanks
Thank you - first guide I have managed to find that explains each line of code.
You accent is really calming while learning
Perfectly clear. Thanks, Derrick.
Perfect explanations. Never followed a channel so fast XD
Thanks for the video:
This is mine:
unslist = [3,7,2,6,4,9,1,5,1]
totlist = [ ]
j =0
while True:
for i in range(len(unslist)-1):
if unslist[i]>unslist[i+1]:
unslist[i],unslist[i+1]=unslist[i+1],unslist[i]
else:
continue
totlist.append(unslist)
if len(totlist)>len(unslist)-2:
if totlist[len(totlist)-1] == totlist[-1]:
break
print(unslist)
I just love the way you're making the concepts simpler. Please keep doing...
This is how all the explanation should be done. precise and on point !! way to go buddy
Этот канал просто находка, только начал учить Python
great going derrik just started coding
Great video! Simply explained. Just one thing you could use indexing_length=indexing_length-1 outside the for loop to improve the speed, as bubble sort keeps sorting the last element.
for i in range(len(arr)):
for j in range(i+1,len(arr)):
if arr[i]>arr[j]:
arr[i],arr[j]=arr[j],arr[i]
it was easy to understand and follow thank you!
Which is a better implementation, this one or the nested for loop one? I think this one is able to terminate the program earlier
@Lucas M both seems fine but personally i find the nested for loop simpler to undestand since you do not need to think about any way to escape the while loop since there is none. Even if the while loop version of bubble sorting executes faster than the classic one, they are both inefficient for bigger lists. I created a program in c++ that puts 50000 random numbers in a list, then i measured the time for the bubble sort function and it took 70 seconds while quicksort function took 0.019 seconds lol
Love the clarity bro 🙏
Great explanation!
Thanks Derrick.
Hi. Thank you for the video. I didn’t get your mean for ‘while not sorted, sorted False and sorted True’. Could you please explain or suggest me a tutorial link for that? Thanks a lot again.
hope its not too late.. how this works is that the outer while loop, when initiated, assumes that the list is sorted, until it isn't, and this is verified by the inner for loop. This structure keeps the sorting going until eventually, the list becomes sorted
Clear and concise, thanks mate!
OMG!....the best video on bubble sort. Thankyou and keep up the good work
This video show simplicity and great explanation for reading the Head First: Learn to Code
Great explanation! So much clearer and easier to understand!
Good god this makes so much more sense than my textbook
Wonderful. If possible could you post a video on shuffling class in algorithms
I took a different approach. "loop" is used in inner for loop bcoz we don't need to check the last elements after every iteration i.e if I have a list of 1000 elements, at the 500th iteration I would not be checking the last 500 elements and somehow tutorials missing this.
def bubbleSort(unsorted):
lst = list(unsorted)
for loop in range(len(lst)-1):
for num in range(len(lst)-1-loop):
if lst[num] >= lst[num+1]:
lst[num], lst[num+1] = lst[num+1], lst[num]
return lst
print(bubbleSort([5, 1, 3, 4, 2, 2, 5]))
managed to change two lines containing boolean statements to get sorting in descending order... thank you
Well, I had been messing up with the codes i get in my Book which is definitely not for beginners but it is preferred for them. Then comes your codes directly hits my brain and i catch it very easily. Ty for the codings. Plz come up with Data structure with python series. Thanks. Keep up the Good Work Sir
Genius Derrick! Thanks
Different implementation than the usual nested for loop implementation. But really nice and easy explanation!
Great job Derrick.
You could do the root For Loop as a enumeration here?
This was such an easy explanation of Bubble Sort. Thanks!
came here from udemy. Thanks for great videos
Of course, as usual, GREAT content!
This was an amazing tutorial man! You just earned a new subscriber!
You are truly gifted dude with your explanations awesome video!
time complexity?
Awesome video & great explanation
You explain in an amazing way! Thank you
you way of explaining things is greatv .. A new member in your hood
clean and concise, thank you!
I wish this would be broken down slower and in more detail, but I understand what you're doing.
Wow!! Awesome, thank you so much!!!
Quick and simple explanation, thank you!
Never gonna miss ur videos now onwards..just awsm explanations...keep teaching us 🙏🙏
Regarding speed for vs. while
in this case double for loop vs Derrick solution
[code]
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# Flag to check if any swaps are made in a pass
swapped = False
# Traverse through all array elements, excluding the last i elements
for j in range(0, n-i-1):
# Swap if the element found is greater than the next element
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
# If no swaps were made in the pass, the list is already sorted
if not swapped:
break
# Example usage:
my_list = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(my_list)
print("Sorted array:", my_list)
[/code]
I did test case with 9999 elements in array (random numbers between 1-9999)
[code]
import random
# Set the seed for reproducibility (optional)
random.seed(42)
# Generate a random array with 9999 elements
random_array = [random.randint(1, 9999) for _ in range(9999)]
# Print the generated array
print(random_array)
[/code]
Benchmark was done here, before i generated a random array with 9999 elements, c/p into main code and ran 3 times
jupyter.org/try-jupyter/notebooks/?path=notebooks/Intro.ipynb
Results:
while loop was 68% slower (11.1 vs 6.6s)
update2
Benchmark was done here too
www.programiz.com/python-programming/online-compiler/
while loop was 44% slower (6.5 vs 4.5s)
localhost benchmark:
ide: PyCharm Community Edition 2023.2.3, python 3.12.0, win10 x64, cpu usage 10% max
while loop 5.5s
double for loop 3.4s
while loop was 61% slower
Sorry, posted wrong code:
[code]
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# Flag to check if any swaps are made in a pass
swapped = False
# Traverse through all array elements, excluding the last i elements
for j in range(0, n-i-1):
# Swap if the element found is greater than the next element
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
# If no swaps were made in the pass, the list is already sorted
if not swapped:
break
# Example usage:
my_list = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(my_list)
print("Sorted array:", my_list)
[/code]
One more thing, how to measure time
add this into first two line of code:
[code]
import time
start = time.time()
def bubble_sort(arr):
[/code]
...
...
...
last three code line:
[code]
end = time.time()
print(end - start)
print("Sorted array:", my_list)
[/code]
Thanks dude, you actually made a simple implementation than the one I was struggling with
this was just amazing. thank you so sos os much
Awesome! The way you implement the technique is completely different from the usual one. But very clean explanation.
Thanks for your videos. They're well presented and quality is crisp!
This stuff was real helpful !!
Thanks for makin' it
Thanks for informative videos. I want to write a code to transfer Excel tables and charts from my laptop to a website. Di you have a tutorial in this regard?
Hey Derrick can you explain why line 7 is necessary? Why do you change sorted to True?
Great series! Massive help.
Down to earth individual no cockiness unlike some other python immature kids who think they run NASA on their own because they know they basics of python. You just got a subscriber.
Clear and fast!
Hey Derrick. Do you have a video on Merge Sort?
Thanks a lot Derrick.
Can you cover merge sort as well
Doesnt the way he structures where the booleans are make his loop run one too many times? He checks if the array is sorted BEFORE swapping the variables. After swapping the variables, the array might be sorted, so running through an extra time for no reason
such simple explanation
Thanks for the clear explanation, great vid
Great vid, well explained. Thank you!
this makes so much sense, unfortunatly i have to add unto pre-existing code and its at least 8 lines longer and i still have no clue wtf to do...
well i did a little different here is my code
def bubblesort(lst: list):
for i in range(len(lst) - 1):
for i in range(len(lst) - 1):
if lst[i] >= lst[i+1]:
lst[i], lst[i+1] = lst[i+1], lst[i]
return lst
Great video!
Wow amazing video, thank you!
Why isn’t the while lip breaking because of the variable that is true?
Good video and explanation are clear !
What's the difference between using a for loop and a while loop for the outer loop?
are that sublime text ? what extension you are using for text snippets and the them
Great explanation! Can you please create a python critical problem solving playlist?
Ley me know, you are genius instructor, I can send the subtitles
@Derrick.. you're the best
Excellent Vid, keep it
sorting list_a[3,5,1,-6,7,45,-3,8,0] in ascending order took 8 iterations but 25 iterations in descending order. Why? Any help will be appreciated. thanks
If there are flowchart, tracetable and pseudocode inclding in this video as well, it would be very helpful for some students who study computing foundation.