Bubble Sort Algorithm Explained (Full Code Included) - Python Algorithms Series for Beginners

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 พ.ย. 2024

ความคิดเห็น • 185

  • @BN-hy1nd
    @BN-hy1nd ปีที่แล้ว +18

    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👏

  • @vidushimohan9949
    @vidushimohan9949 3 ปีที่แล้ว +73

    Man, you're a godsend! Such a crisp and on-point elucidation, I've never felt anything clearer than this in my life!

  • @Impedance_Z
    @Impedance_Z ปีที่แล้ว +33

    People go to indians for tutorial and I'm an indian coming to you for tutorial 😂

    • @nasttygamer08
      @nasttygamer08 10 หลายเดือนก่อน

      Bro first learn English

    • @Impedance_Z
      @Impedance_Z 10 หลายเดือนก่อน +1

      @@nasttygamer08 What was wrong in it could please enlighten me with my mistake?

    • @nasttygamer08
      @nasttygamer08 10 หลายเดือนก่อน +1

      @@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. 👍

    • @t.h.e.unknown_
      @t.h.e.unknown_ 7 หลายเดือนก่อน +9

      ​@@nasttygamer08 bruh yours sounds incomplete... Leave lil bro alone💀

    • @ivanxavier9022
      @ivanxavier9022 5 หลายเดือนก่อน +2

      @@nasttygamer08you have no right to tell someone to learn English when your grammar is no different from a 4 year old 😂😂

  • @andrewtate8792
    @andrewtate8792 7 หลายเดือนก่อน +5

    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.

  • @gachle
    @gachle 6 หลายเดือนก่อน +2

    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

    • @EllenDivaIbanez
      @EllenDivaIbanez 6 หลายเดือนก่อน +1

      same, this guy can explain the concept in the simple way and also in the short time

    • @rajanhossain9250
      @rajanhossain9250 6 หลายเดือนก่อน +1

      Same here, finally I get this clearly! Explaining the whole thing while writing code makes it super easy to understand.

  • @ToughenUpkids
    @ToughenUpkids 8 หลายเดือนก่อน +1

    Great video - very clearly explained and helped the penny drop very quickly!

  • @RoqiMohajeri
    @RoqiMohajeri 2 หลายเดือนก่อน +1

    Your way of teaching is simple, short, and understandable. Great job. Thanks a lot.

  • @uppalapraveen959
    @uppalapraveen959 4 ปีที่แล้ว +26

    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

  • @leonquadros4552
    @leonquadros4552 5 ปีที่แล้ว +33

    This is great stuff. Pls continue making videos

  • @tareqmahmud3902
    @tareqmahmud3902 3 ปีที่แล้ว

    Boss I have solved the problem when you said to try it by myself. You are the extraordinary teacher I could ever find.

  • @codeNexus-bb2mb
    @codeNexus-bb2mb ปีที่แล้ว

    after 4 years this is by far the best video

  • @adithyaramesh7251
    @adithyaramesh7251 3 ปีที่แล้ว

    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

  • @serranoaaronjamesv.6436
    @serranoaaronjamesv.6436 2 ปีที่แล้ว

    The easiest tutorial to follow, straight to the point, will definitely recommend this to my colleagues.

  • @kharlopena7512
    @kharlopena7512 3 ปีที่แล้ว +1

    Been searching for so many explanations for sorting and I get it, but yours have been the easiest to understand by far. Godly!

  • @banquotheholstein
    @banquotheholstein ปีที่แล้ว

    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.

  • @thedataprofs3867
    @thedataprofs3867 ปีที่แล้ว +1

    Great, short and straight to the point explanation!

  • @timohelasvuo9650
    @timohelasvuo9650 5 ปีที่แล้ว +20

    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!

  • @kvelez
    @kvelez ปีที่แล้ว

    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]))

  • @fareselamine8115
    @fareselamine8115 3 ปีที่แล้ว +3

    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!

  • @thescoobiestdoo2642
    @thescoobiestdoo2642 4 ปีที่แล้ว +1

    how tf is this dude not huge this shit is life saving

  • @coreyjordan6733
    @coreyjordan6733 2 ปีที่แล้ว

    I was researching this algorithm, your code and explanation is so much more simple and I appreciate that.

  • @TechEndeavor
    @TechEndeavor 4 ปีที่แล้ว +4

    Great explanation. I've been trying to wrap my head around this one for a minute.

  • @williancerqueira
    @williancerqueira 2 วันที่ผ่านมา

    I almost died trying to understand Bubble sort yesterday, this video explains it so clearly!

  • @Princeali736
    @Princeali736 ปีที่แล้ว +1

    @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.

  • @tjmns
    @tjmns 11 หลายเดือนก่อน

    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]

  • @paula98033
    @paula98033 3 ปีที่แล้ว +1

    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

  • @lucysnowe9974
    @lucysnowe9974 3 ปีที่แล้ว

    Thank you - first guide I have managed to find that explains each line of code.

  • @austintownsend3974
    @austintownsend3974 ปีที่แล้ว

    You accent is really calming while learning

  • @rhodabaruch4
    @rhodabaruch4 ปีที่แล้ว

    Perfectly clear. Thanks, Derrick.

  • @benduitsman3161
    @benduitsman3161 2 ปีที่แล้ว

    Perfect explanations. Never followed a channel so fast XD

  • @aminetlemcani693
    @aminetlemcani693 4 ปีที่แล้ว

    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)

  • @devindeepak
    @devindeepak 4 ปีที่แล้ว

    I just love the way you're making the concepts simpler. Please keep doing...

  • @nithin_in_ireland
    @nithin_in_ireland 3 ปีที่แล้ว

    This is how all the explanation should be done. precise and on point !! way to go buddy

  • @генпол
    @генпол 3 ปีที่แล้ว

    Этот канал просто находка, только начал учить Python

  • @poppyecave3966
    @poppyecave3966 2 ปีที่แล้ว

    great going derrik just started coding

  • @jupjyotkhosla4640
    @jupjyotkhosla4640 2 ปีที่แล้ว +2

    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.

  • @dijkstra1144
    @dijkstra1144 2 ปีที่แล้ว

    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]

  • @NicoAn2
    @NicoAn2 ปีที่แล้ว

    it was easy to understand and follow thank you!

  • @lucasm4299
    @lucasm4299 2 ปีที่แล้ว +1

    Which is a better implementation, this one or the nested for loop one? I think this one is able to terminate the program earlier

    • @penteronto
      @penteronto 2 ปีที่แล้ว

      @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

  • @MANOJKumar-lk6qz344
    @MANOJKumar-lk6qz344 2 ปีที่แล้ว

    Love the clarity bro 🙏

  • @ReverantKnight
    @ReverantKnight ปีที่แล้ว

    Great explanation!
    Thanks Derrick.

  • @ershadramezani6716
    @ershadramezani6716 4 ปีที่แล้ว +3

    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.

    • @cheeweng1060
      @cheeweng1060 3 ปีที่แล้ว

      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

  • @MaxHamilton559
    @MaxHamilton559 4 ปีที่แล้ว +2

    Clear and concise, thanks mate!

  • @shrutikanikhar7987
    @shrutikanikhar7987 4 ปีที่แล้ว

    OMG!....the best video on bubble sort. Thankyou and keep up the good work

  • @FrenchyFlyTv
    @FrenchyFlyTv 4 ปีที่แล้ว

    This video show simplicity and great explanation for reading the Head First: Learn to Code

  • @kuykuy8800
    @kuykuy8800 3 ปีที่แล้ว +1

    Great explanation! So much clearer and easier to understand!

  • @CC-bm3wb
    @CC-bm3wb 3 ปีที่แล้ว

    Good god this makes so much more sense than my textbook

  • @valenoveb3339
    @valenoveb3339 3 ปีที่แล้ว

    Wonderful. If possible could you post a video on shuffling class in algorithms

  • @entity5678
    @entity5678 ปีที่แล้ว

    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]))

  • @BN-hy1nd
    @BN-hy1nd ปีที่แล้ว

    managed to change two lines containing boolean statements to get sorting in descending order... thank you

  • @respect_gamers5695
    @respect_gamers5695 4 ปีที่แล้ว

    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

  • @tambahsaah8005
    @tambahsaah8005 2 ปีที่แล้ว

    Genius Derrick! Thanks

  • @MrAmbarish710
    @MrAmbarish710 4 ปีที่แล้ว +1

    Different implementation than the usual nested for loop implementation. But really nice and easy explanation!

  • @mayankumar1312
    @mayankumar1312 3 ปีที่แล้ว

    Great job Derrick.

  • @barelycodingtoday
    @barelycodingtoday ปีที่แล้ว

    You could do the root For Loop as a enumeration here?
    This was such an easy explanation of Bubble Sort. Thanks!

  • @subramanianchenniappan4059
    @subramanianchenniappan4059 4 ปีที่แล้ว

    came here from udemy. Thanks for great videos

  • @theminertom11551
    @theminertom11551 4 ปีที่แล้ว +1

    Of course, as usual, GREAT content!

  • @shaharyarahmed5777
    @shaharyarahmed5777 4 ปีที่แล้ว +1

    This was an amazing tutorial man! You just earned a new subscriber!

  • @lamedev1342
    @lamedev1342 3 ปีที่แล้ว

    You are truly gifted dude with your explanations awesome video!

  • @arjay_2002
    @arjay_2002 3 ปีที่แล้ว +1

    time complexity?

  • @itaco8066
    @itaco8066 2 ปีที่แล้ว

    Awesome video & great explanation

  • @nor123100
    @nor123100 3 ปีที่แล้ว

    You explain in an amazing way! Thank you

  • @adittorahman8255
    @adittorahman8255 4 ปีที่แล้ว +1

    you way of explaining things is greatv .. A new member in your hood

  • @ted2091
    @ted2091 3 ปีที่แล้ว

    clean and concise, thank you!

  • @Hytension
    @Hytension ปีที่แล้ว

    I wish this would be broken down slower and in more detail, but I understand what you're doing.

  • @thaniacisneros5785
    @thaniacisneros5785 7 หลายเดือนก่อน

    Wow!! Awesome, thank you so much!!!

  • @likag.105
    @likag.105 4 ปีที่แล้ว

    Quick and simple explanation, thank you!

  • @subhashreebehera2994
    @subhashreebehera2994 4 ปีที่แล้ว

    Never gonna miss ur videos now onwards..just awsm explanations...keep teaching us 🙏🙏

  • @jst8922
    @jst8922 11 หลายเดือนก่อน

    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

    • @jst8922
      @jst8922 11 หลายเดือนก่อน

      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]

    • @jst8922
      @jst8922 11 หลายเดือนก่อน

      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]

  • @pappymekk4790
    @pappymekk4790 3 ปีที่แล้ว

    Thanks dude, you actually made a simple implementation than the one I was struggling with

  • @iamjustahair1315
    @iamjustahair1315 5 หลายเดือนก่อน

    this was just amazing. thank you so sos os much

  • @natashasen3548
    @natashasen3548 2 ปีที่แล้ว

    Awesome! The way you implement the technique is completely different from the usual one. But very clean explanation.

  • @vivekr4690
    @vivekr4690 5 ปีที่แล้ว +1

    Thanks for your videos. They're well presented and quality is crisp!

  • @kasvisreemurthy7009
    @kasvisreemurthy7009 4 ปีที่แล้ว

    This stuff was real helpful !!
    Thanks for makin' it

  • @rasoulkhoshravan5912
    @rasoulkhoshravan5912 3 ปีที่แล้ว

    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?

  • @dr1lltrckz147
    @dr1lltrckz147 3 ปีที่แล้ว

    Hey Derrick can you explain why line 7 is necessary? Why do you change sorted to True?

  • @naiadbaksh3996
    @naiadbaksh3996 3 ปีที่แล้ว

    Great series! Massive help.

  • @khalid11221122
    @khalid11221122 4 ปีที่แล้ว +1

    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.

  • @majidzarinkolah
    @majidzarinkolah 3 ปีที่แล้ว

    Clear and fast!

  • @joshnippleton3449
    @joshnippleton3449 4 ปีที่แล้ว

    Hey Derrick. Do you have a video on Merge Sort?

  • @shrvansudhakar7514
    @shrvansudhakar7514 4 ปีที่แล้ว

    Thanks a lot Derrick.

  • @sivakumaranbazhagan1672
    @sivakumaranbazhagan1672 ปีที่แล้ว

    Can you cover merge sort as well

  • @oldgregrl1934
    @oldgregrl1934 หลายเดือนก่อน

    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

  • @manashbehera961
    @manashbehera961 2 ปีที่แล้ว

    such simple explanation

  • @keuair
    @keuair 4 ปีที่แล้ว

    Thanks for the clear explanation, great vid

  • @Re9sTwitch
    @Re9sTwitch 3 ปีที่แล้ว

    Great vid, well explained. Thank you!

  • @emerymusicdisc7172
    @emerymusicdisc7172 9 หลายเดือนก่อน

    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...

  • @nidhihanda4827
    @nidhihanda4827 ปีที่แล้ว

    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

  • @Kait07_
    @Kait07_ ปีที่แล้ว

    Great video!

  • @jmitch474
    @jmitch474 3 ปีที่แล้ว

    Wow amazing video, thank you!

  • @PepeTostado
    @PepeTostado 2 ปีที่แล้ว

    Why isn’t the while lip breaking because of the variable that is true?

  • @kyffran6084
    @kyffran6084 5 ปีที่แล้ว

    Good video and explanation are clear !

  • @DerickGudo
    @DerickGudo 4 ปีที่แล้ว

    What's the difference between using a for loop and a while loop for the outer loop?

  • @somarjaber1275
    @somarjaber1275 2 ปีที่แล้ว

    are that sublime text ? what extension you are using for text snippets and the them

  • @tanzirhossain7159
    @tanzirhossain7159 4 ปีที่แล้ว

    Great explanation! Can you please create a python critical problem solving playlist?

  •  4 ปีที่แล้ว

    Ley me know, you are genius instructor, I can send the subtitles

  • @manolo6048
    @manolo6048 4 ปีที่แล้ว

    @Derrick.. you're the best

  • @shakots
    @shakots 5 ปีที่แล้ว +1

    Excellent Vid, keep it

  • @BN-hy1nd
    @BN-hy1nd ปีที่แล้ว

    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

  • @yothinluangkhot601
    @yothinluangkhot601 4 ปีที่แล้ว

    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.