Understand Quick Select (In 10 mins)

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

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

  • @bouzie8000
    @bouzie8000 9 หลายเดือนก่อน +26

    Believe it or not, this is the best quick select explanation on youtube.For the first timein my life, i can write this algorithm without memorization

  • @eolookwawa
    @eolookwawa 13 ชั่วโมงที่ผ่านมา

    This is the best quick select explanation indeed. Other videos never explain what each element of the code actually means.

  • @Prenevyspam
    @Prenevyspam 7 วันที่ผ่านมา

    I was so scared of quickselect before this video, thank you so much for breaking it down in the most understandable way. You're a great tutor!

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

    I can say this video is the best explanation of the quick select algorithm on TH-cam. I read an article on GeeksforGeeks and only found myself more confused because of poor variable naming such as x and y, and weird way of partitioning like right - left, and so on. The method in this video and the explanation make more sense! Thanks CS Robot!

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

      Never go to geeksforgeeks. It is by far the worst resource on the Internet because none of the articles are reviewed and you don't need any credentials to write one.

  • @ChillWithAbhishek
    @ChillWithAbhishek 5 หลายเดือนก่อน +1

    One of the better explanations out there. The thing with partition is that there are various ways to do it and so many nuances with the boundary conditions if you are not careful. There is another method using while loops which I have always found tad bit more difficult. This one is more straightforward.

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

    This is an unbelievably concise yet helpful explanation - thanks a ton

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

    What a great, down to earth explanation.

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

    straight to the point and no nonse explaination!, thanks for explaining the partition function now I can easily remember the solution

  • @SangriaSarah
    @SangriaSarah 27 วันที่ผ่านมา

    Fantastic explanation. Very clear and concise and thorough. Thank you!

  • @AbhijeetMishra-bl7yr
    @AbhijeetMishra-bl7yr ปีที่แล้ว +1

    Keep posting these king of videos
    Great usage of example and step by step impl explanation.
    Keeping it simple

  • @דבירגיל
    @דבירגיל 2 หลายเดือนก่อน

    brilliant. One of the best algorithm explanations here. fine work thank you!

  • @neev4n
    @neev4n 5 หลายเดือนก่อน +1

    lowkey the best quickselect explanation ever what

  • @COURATWENTYTHREE
    @COURATWENTYTHREE 3 หลายเดือนก่อน +1

    Best Quick Sort explaination❤❤❤❤

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

    Super good explanation video. This deserves more views

  • @AbhijeetMishra-bl7yr
    @AbhijeetMishra-bl7yr ปีที่แล้ว +1

    This is best as far as I have seen on YT
    I was really stuck at I and J pointer.
    nailed it 🔥

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

    thank you for your explanation it is super clear and concise thank you

  • @Sha-256-rath
    @Sha-256-rath ปีที่แล้ว +3

    really appreciate your way of explaining😇😇

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

    You easily had the best video on it, thank you!

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

    best video ever for quickselect

  • @shauryatomer1058
    @shauryatomer1058 3 หลายเดือนก่อน +2

    Man you make such great videos, why'd you stop?

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

    thank you so much this helped me understand very quickly

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

    Perfect explanation! Thank you

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

    thank you so much. that was a great explanation

  • @Nishit_369
    @Nishit_369 7 หลายเดือนก่อน +1

    Awesome explanation. Thanks!!!

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

    Is this works if the last element in an array is the largest?, bcoz the arr[i] and arr[r] swaps at the end of the each iteration right

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

    Great explanation, thank you

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

    great video , it deserves more views

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

    Very good explanation, thank you!

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

    How do you make these graphics ? Is it a presentation ? Slides , or something like manim ?

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

    You have good explanation, Thanks it's help me a lot

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

    Shouldn't the time complexity be denoted big theta of n and big O of n^2?

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

    Great Explanation, thank you

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

    Fill the empty cells in the rows with their basic possibilities given the numbers in the sub grid row and column no need to do any more working out. Now go from left to right or right to left ignore the data in your cell and see what numbers ain't covered by the possibilities in the other cells or the cells already solved. If there are no possibilities deduced move to the next empty cell and wipe the info in the cell you just tested. If you do find a possible number or 2 from this test then the solution is that number or is one of those numbers. It's a very quick O n time test that trips the game of sudoku up and ruins it for everyone.

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

    Good work!

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

    good explanation, thanks

  • @ahmedabdelalem4326
    @ahmedabdelalem4326 9 หลายเดือนก่อน +1

    this is the first time i can understand algorithms from the first time.

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

    really well explained

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

    great explanation

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

    really really good video

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

    great video!

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

    Isn't the third largest element 10 here?

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

    Love from india

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

    thanks

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

    Selecting the last as pivot is risky, selecting a random is much better.

    • @Fran-kc2gu
      @Fran-kc2gu ปีที่แล้ว

      lol no, if the order it's random which almost always is it's the same

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

      @@Fran-kc2gu Depend on the input as you say, but you hit the worst case O(N^2) if the list if already sorted, which is a denial of service attack vector. If your having a critical timeout you must meet you should even go with a median-of-medians.

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

      how can we adopt the partition function to select a random pivot? Just pivot = arr[randint(l, r)] doesn't work

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

      @@surters , if your list is unsorted, arguably list.length - 1 slot will follow a random distribution. Your worst case depends not only on the list but the kth position you're trying to find. It is true, a random selection can reduce worst case chance still, but it really is something you should judge on your use case. Your real world distribution of your list may not hit the worst case scenario as often as other distributions. If your list is small, your usage of random may actually incur more overhead than just selecting a fixed pivot. Don't let big O complexity blind you to the underlying complexity and overhead of the functions you call in your algorithms, or that the complexity depends on external factors to the algorithm, like the expected distribution of your list.
      For a DOS attack, your user would have to control the list and search position and the specific implementation would need to affect the shared resources appreciably. Your advice thus is highly specific to a very specific use case and implementation that isn't broadly of concern.

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

      @@JimBob1937 If it is OK that sometimes O(N^2) is acceptable and the data is not depending on potential hostile 3rd party input, it could be OK. If your dealing with potentially hostile 3rd party inputs, depending on a predictable pivot is not advisable, picking a random pivot might be good enough. If on the other hand you can never afford to hit O(N^2) ever, then median of medians is an option. There is tons of literature on the matter.

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

    The time complexity is wrong, its o(n^2) worst case if you select the largest or smallest element in the array