Selection sort in 3 minutes

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ม.ค. 2025

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

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

    I watched it at 2x and learned selection sort in 1min and 21 seconds.

    • @iamdeepak__
      @iamdeepak__ ปีที่แล้ว +16

      I understood it in the first swap itself.. In 30 seconds.

    • @M-R-Editor
      @M-R-Editor ปีที่แล้ว +1

      ​@@iamdeepak__😂😂

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

      ​@@iamdeepak__*understood

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

      *2 min 21.5 secs

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

      @@4NDTRY yeh 👍

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

    my prof made 90 slides in pseudo code and loop invariants that i didnt even know what was happening, watching your video it makes so much sense, thank you and keep up the great work

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

      Gatdamn, 90 slides. Das Mad!

    • @kamwow9469
      @kamwow9469 ปีที่แล้ว +8

      Lmao loop invariants? Did you go to Cornell

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

      @@kamwow9469 bro every University brings up loop invariants or induction to prove algorithms. Professors even say "This is the only time you will ever need to formally prove an algorithm". 😂🥲

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

      tell him to change his way of teaching or get him fired

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

      Makes me feel really blessed to have a prof like mine. Only needed to watch this video because I missed that class

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

    Here I am paying tuition to be taught this in 8 days and 3 1 hour long videos, meanwhile this video taught me this is less than 3 minutes.
    You are saving my Data structures and algorithms module.
    Thank you

  • @MaxAttaxxxxxxxxx
    @MaxAttaxxxxxxxxx 5 ปีที่แล้ว +205

    Thank you so much for explaining this simply and effectively. The real example to follow along with is helpful and the psudocode at the end puts it back into a more studious context.

  • @natqt93
    @natqt93 ปีที่แล้ว +7

    my professor explained this in a way that made my brain scramble. lol but here I am learning it in a few minutes. thank you so much for these videos.

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

    Best explanation I've seen on the topic

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

    Really good. Simple, quick, easy. Much better than the other youtube videos which are practically 10-30 minute lectures that explain the same thing.

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

    Thanks for this quick, easy and unambiguous explanation of the sorting algorithm

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

    I spent a couple days trying to wrap around this... and this video helped me ALOT!!! And THANK YOU FOR THE PSEUDO CODE!

  • @masoodsediqi1440
    @masoodsediqi1440 5 ปีที่แล้ว +16

    Thank you so much for explaining this simply and effectively.

  • @Mdt-24
    @Mdt-24 6 หลายเดือนก่อน

    Thank u for this, first time doing algorithms and data structure coding, got confused on how selection sort worked, watched this and instantly knew what to do basing my code off this.

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

      Awesome! Check the code repo if you have any doubts: github.com/msambol/dsa.

  • @How2hit
    @How2hit 5 ปีที่แล้ว +7

    Dude. You explained very well. Simple and clear!

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

    Well I have my offline college starting in two days and i didnt pay attention to all of this but now I don't regret it.. thanks brother ♥️✌️

  • @newmb321
    @newmb321 5 หลายเดือนก่อน +4

    my professor kept rambling and rambling until I was just like, "do you even know how this works?" he admitted he didn't so I told him to put on Michael Sambol. later, he thanked me after class and told me that he had spent years trying to figure this one out.

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

    These videos are so good for refresher on algorithms before my exam.

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

      Thanks, Caleb!

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

      @@MichaelSambol 👍 Any chance you'd consider doing a video on P, NP and NP complete?

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

      @@calebkrauter4027 will add those to the list!

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

    Thank you so much for making such a simple to understand and concise explanation of this!!

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

    your videos are accurate, simple and right to the point!
    thank you for making an effort to put it out there.
    you gained a subscriber today and i'm sharing the hell out of your videos from now on!

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

      Thank you very much. More coming soon.

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

    WTF, are you a god or what? My faculty took a week to do all the sorting, and you did it in like 20 minutes.

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

    Short, consise and easy to follow! Thank you for this!!

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

    Man go and be a teacher the world needs more teachers like you

  • @instamarg5396
    @instamarg5396 6 ปีที่แล้ว +8

    So simple. Greatly explained.

  • @BM-_
    @BM-_ ปีที่แล้ว

    Thank you for this visual explanation, I was able to code this using your visualization!

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

    Thanks!! It's just like the bubble sort, but instead of swapping the elements, we update the pointers. Neat.

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

    Thank you. You make it sound so easy!

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

    this guy is sorting my ideas

  • @DeepakYadav-ys7dg
    @DeepakYadav-ys7dg ปีที่แล้ว

    Thank you very much, just by watching your video I make a algorithm on my own

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

    What an amazing and simple explanation... Thanks a lot sir!💝

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

    thank you Michael. Very nice and clean explanation. Good job. Keep it up.

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

    Thank you, this is helping me in the exam ❤

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

    i literally love you

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

    Nicely done. I remember watching the Kruskal and Dijstra algorithms back when I had classes. Keep up!

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

    Lol came back here after my prof played this and your other videos on sorting to us.

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

    SUPER Simple and quick explaniation ! THANK U

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

    just learned this from your video and wow this goes hard for smaller lists. looks like I'll need more than quick sort after all if my cool is to overoptimize sorting performance to have as-responsive-as-possible ui and fast builds :)

  • @purleedef
    @purleedef 5 ปีที่แล้ว +8

    I watched this up to about 45 seconds where he had minimum set to 2 and current set to 1 and thought to myself "Please don't swap them. Please don't tell me we swap" then he had the fucking had the nerve to swap them and I'm not gonna lie, it really fucked up my morning.

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

      Lmao, this comment made my day XD

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

    *The time complexities are*
    Best: O(n^2)
    Average: O(n^2)
    Worst: O(n^2)
    Storage: O(1)

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

    Thanks a lot! Understood it completely man!

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

    THANK YOU!! this was amazing

  • @bleach92master
    @bleach92master 8 ปีที่แล้ว +11

    Great vids, easy and simple for revision :) Thanks!

  • @Jeb-OGD
    @Jeb-OGD 4 ปีที่แล้ว

    I never thought it would be this easy

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

    Great explaining. Useful for my subject Algorithm Analysis😄

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

    Great video! Exactly what I needed. tyvm!

  • @random-0
    @random-0 3 ปีที่แล้ว

    best video on selection sort

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

    omg u saved my life period girl thanks queen!!!!!!

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

    For anyone looking for working JS solution:
    function selectionSort(arr) {
    const len = arr.length
    for(j=0;j

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

      cool avatar, i tried to remove this hair for 2 seconds))

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

    Thank u so much short and precise.

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

    Thank you very much! Python code:
    array = [2,8,5,3,9,4,1]
    def selection_sort(A):
    print(f"Starting Array: {A}
    ")
    for o_idx, o_val in enumerate(A):
    min = o_val
    print(f"Iteration #{o_idx+1}: pointer={o_val}, min={min}, array={A}")
    for i_idx, i_val in enumerate(A[o_idx+1:]):
    if i_val < min:
    old_min, min = min, i_val
    min_idx = o_idx+i_idx+1
    print(f" Comparison: {min} < {old_min}")
    else:
    print(f" Comparison: {i_val} > {min}")
    else:
    A[o_idx], A[min_idx] = min, o_val
    print(f" Swapping: {min} & {o_val}")
    print(f"{A}
    ")
    print(f"Resulting Array: {A}")

  • @n.btrung
    @n.btrung 5 ปีที่แล้ว +2

    thank you for such an useful video!

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

    these vids are soooooooooo helpful man

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

    bro should have a Nobel prize for teaching

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

    awesome, clean, and clear, thanks

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

    amazing! thank you for the clean explanation

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

    I did terrible on my CSA quiz, and this video wasn't there to help me when i needed. :(((

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

    Thanks for making this video!

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

    I think I’ve got it but let me just explain it in my own words and you can tell me if I got it correct.
    so for each iteration:
    * we start out with the left-most unsorted number. (I will refer to this number as, “j” and I will refer to the number to the left of j as, “k”.) but for the first iteration, we will use 0 for the value of k.
    * We check the array from left to right looking for the smallest number that is less than j but greater than k and if we find one, we will call that number, “q”
    * if we don’t find a number that is less than j and greater than k, we mark j as sorted and j stays in its current position throughout the entire sorting process because there is nothing that needs to be moved to the left of it.
    * However, if we do find a number that is less than j and greater than k, we will swap j with q (remember when I say, “q”, I mean the number that is less than j and greater than k) and mark q as sorted and q stays in its current position because there is nothing that needs to be moved to the left of it.

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

    You made it simple.♥️

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

    Very nice visualisation, thanks

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

    Simple explanation. Thanks a lot!

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

    *Best sorting algorithm right there, no better one! Yup.*

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

    So smooth
    Youre the best

  • @VihaanKumar-o1s
    @VihaanKumar-o1s 10 หลายเดือนก่อน

    too good...
    it is a very nice explanation...

  • @Jacob-cm3io
    @Jacob-cm3io 5 ปีที่แล้ว

    I love you Michael.

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

    Fast and simple thank you so much

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

    i love these cute little videos

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

    hey is the (if iMin!=j) clause really nnecessary? Wouldn't it just swap it with itself and thereby not change anything

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

      iirc the point of having this clause is to be more efficient
      depending on the size of the array and the complexity of the program you might be unnecessarily swapping a lot of numbers over and over, wasting time/energy

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

    We divide the array into 2 partitions, the sorted array and non-sorted array, which we don't do in bubble sort. #IISH11CSHLIC

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

    Very nice job! Thank You.

  • @tanhanvincentt.3391
    @tanhanvincentt.3391 4 ปีที่แล้ว

    best explanation 💕

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

    depending on the searching algorithm, algorithm can go to NLogN absolute worst case.. remember you are searching in a sorted list.. even if you start sorted decreasing order..

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

    These video helped me alot

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

    Excellent explained

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

    nice bro less time n more efficient cool keep it up!!!!

  • @SmartProgramming
    @SmartProgramming 6 ปีที่แล้ว

    nice one sir 👍👍

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

    fantastic and simple!!!

  • @FLX-vq6yu
    @FLX-vq6yu 6 หลายเดือนก่อน

    if j = i + 1, shouldn't the current item j of the inner loop, which indicates the blue arow in the video, starts one behind the red arow during each iteration instead of showing up together under the same number?

  • @riyaa2785
    @riyaa2785 5 วันที่ผ่านมา

    but 5 is smaller than 8 right ? why did it not get exchanged with 5?

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

    I LOVE YOU!!!!
    GOD BLESSSSSSS YOUR LIFEEE

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

    Why not putting the swap function inside the if condition after the iMin = i;

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

    perfect perfect thank you king

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

    After suffering the youtube..finally i got you 😂...

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

    Sos mas grande que hay. Mastodonte

  • @ghazi2796
    @ghazi2796 6 ปีที่แล้ว

    Neat Presentation & Simple Explaination.
    I Like (Y)

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

    Can you put a video on insertion sort?
    If so that would be great!!

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

    What happens if two of the numbers are the same?

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

    yeah, the animation is wrong, the red index does not move with the blue one at the same time...

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

    I understood so quick!

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

    If i get a question asking how many iteration it took overall

  • @Tombalino
    @Tombalino 6 ปีที่แล้ว

    Great explanation

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

    Hmmm...I'm getting whiffs of insertion sort here. Like selection sort we always look for the minimum and then swap. Insertion sort we ask is this the smallest we've seen yet then slot it into place. Similar ideas

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

    So, the complexity is the same as bubble sort. Then, why do we need both? Is it any better than bubble sort in some specific applications?

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

      bubble sort is stable whereas this is unstable

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

      @@plutomessi21 Isn't stable algorithm always better than unstable one, with all other conditions the same? I once needed a stable sort algorithm when I created a GUI that showed a sorted list of values that got constantly updated. But I don't remember any time I specifically needed an unstable algorithm.

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

      @typingcat yes yes stable algo is always better, selection sort is just a technique which is taught in the universities but used very less frequently in the real world😊

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

    This is proper explain, I went to other veedeo and no good

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

    I don't understand why you put n-1 in the first for, it doesn't work for me. Here's my example of selection sort:
    #include
    int main()
    {
    int i,j,tempor,array[]={5,9,3,14,11};
    printf("array before sorting:
    ");
    for(i=0;i!=5;i++) printf("array[%d] holds value %d
    ",i,array[i]);
    for(i=0;i!=5;i++)
    {
    for(j=i+1;j!=5;j++)
    {
    if(array[j]

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

    Thank you for the fantastic video. I use it a lt a lot in my classes, but the pseudocode is confusing. The part of the FOR LOOP that says J < n - , should this be j = n-1??

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

    Useful video. Thanks.

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

    Would a recursive selection sort be less efficient than a nested loop selection sort?

  • @fupopanda
    @fupopanda 6 ปีที่แล้ว +26

    The choice of starting array still leaves room for confusion.

  • @liujianghao1720
    @liujianghao1720 6 ปีที่แล้ว +16

    it can be improved by add best case worst case and time complexity

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

      The time complexity for best case, worst case, and avg case are all O(n^2)

    • @Mark-tv1zs
      @Mark-tv1zs 5 ปีที่แล้ว +1

      All three of those cases are O(n^2)

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

    can someone tell me is this another implementation of selection sort? or this is other kind of sort? note that in the code I'm not looking for "iMin" or something like that, just straight swap when I catch a smaller element
    void sort(vector & arr, int n) {
    for (int i = 0; i < n - 1; i++)
    for (int j = i + 1; j < n; j++)
    if (arr[i] > arr[j])
    swap(arr[i], arr[j]);
    }

  • @1.Crazy_Engineer
    @1.Crazy_Engineer 2 ปีที่แล้ว

    Thank you very much 🌹❤

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

    #IISH11CSHLIC Selection sort is a swap between the minimum value and the current value after a complete loop.