C++ Programming: Binary Search Algorithm

Code can be found at pastebin.com/fsmGF1hp
Concepts:
How the binary search algorithm works
Performance of binary search in comparison to linear search
Binary search cuts the search space in half on each comparison
Implementation of binary search in C++
Binary search has log(n) running time (time complexity).

Пікірлер: 144

  • @yasina63
    @yasina63 Жыл бұрын

    I have seen the Linear search algorithm you completely figured out for me. Your teaching way is a piece of cake. Watching from Ethiopia. Thanks a bunch.

  • @christianvillamor6273
    @christianvillamor627311 жыл бұрын

    WOW. Thank you! Programmers tend to be really snobby when it comes to helping. WE NEED MORE PROGRAMMERS LIKE YOU!

  • @rajcodes100
    @rajcodes1006 жыл бұрын

    Thanks so much - I have listened to your videos on arrays and passing arrays to functions - now I finally think I get the concepts - the explanations were clear and systematic - keep posting more videos - kudos sir for sharing your knowledge in a way that communicates to the student.

  • @uzumaki9t
    @uzumaki9t7 жыл бұрын

    Very well explained. I thought binary search was something awful when I saw it on my last exam. Thank you very much!

  • @bilalahmad-xp9ck

    @bilalahmad-xp9ck

    7 жыл бұрын

    Tarik Đulić yes

  • @mountgraph1403
    @mountgraph14036 жыл бұрын

    Pls dont stop making this videos. They really help!

  • @eaglebaize
    @eaglebaize11 жыл бұрын

    Thank you so much! I have a comprehensive c++ final today (it will cover material from both this and the previous semesters). Cheers!

  • @opiumslave
    @opiumslave4 жыл бұрын

    I've my Computer Science boards practical exam on 1st Feb. U helped me a lot.... Thanks man

  • @studyfreak8429
    @studyfreak84292 ай бұрын

    this is year 2024 and this stuff is still relevant, man c++ IS evergreen

  • @babbalgts
    @babbalgts8 жыл бұрын

    you are good at teaching...... i didn't find any video that made it as clear as you did!.... thanks a lot;... coz tomorrow is my 12th grade final exam.

  • @grigorebordea1212
    @grigorebordea12125 жыл бұрын

    Thank you so much i've tried to understand this algorithm for 2 days even though this isnt that hard

  • @NatsukiSY
    @NatsukiSY2 жыл бұрын

    I love you man Even my doctor couldn't make it this simple

  • @rafiullahqallander
    @rafiullahqallander8 жыл бұрын

    I just can say, you are THE BEST. Many thanks for your great contribution, May God bless you :)

  • @robbiecastillo7495
    @robbiecastillo74957 жыл бұрын

    Well done sir! Very helpful.

  • @Lolablue1986
    @Lolablue19866 жыл бұрын

    Great video been looking for something like this all day lol

  • @billzhang1892
    @billzhang189211 жыл бұрын

    Thanks very much for so simplified and excellent lecture!

  • @TheVerbalAxiom
    @TheVerbalAxiom8 жыл бұрын

    Wonderful, perfect explanation.

  • @corrondo25
    @corrondo258 жыл бұрын

    watch 4 videos looking for a simple detail concerning the algorithm. You had it.

  • @1314rom
    @1314rom10 жыл бұрын

    Awesome video. Clear and to the point.

  • @hyunbinpark3382
    @hyunbinpark33827 жыл бұрын

    Thank you for posting!

  • @dbporter
    @dbporter7 жыл бұрын

    Thank God you have an American accent

  • @jahitrst2863

    @jahitrst2863

    4 жыл бұрын

    Xdd haha

  • @temirlanmukatay1765

    @temirlanmukatay1765

    4 жыл бұрын

    👍

  • @4XD45

    @4XD45

    3 жыл бұрын

    it's interesting that it's always the indians making these types of tutorials.

  • @rednecksegexe4438

    @rednecksegexe4438

    3 жыл бұрын

    Stfu

  • @darkwolf988ify

    @darkwolf988ify

    2 жыл бұрын

    @@4XD45 ikr?

  • @Brad6013-
    @Brad6013- Жыл бұрын

    You explained this very well. Thank you

  • @ranjhi369
    @ranjhi36911 жыл бұрын

    excellent and simplified presentation. thanx

  • @escaravar7417
    @escaravar74179 жыл бұрын

    Thank you for this video, it's so helpful!!

  • @Gooneryz
    @Gooneryz11 жыл бұрын

    @ReelLearning you made it so simple and logical to understand.Thanks for the video it helped me a lot. :) By the way what is the program you're using to write the code and compile it?

  • @cristopheririas1509
    @cristopheririas15095 жыл бұрын

    I really love your way of explaning. I should tell you I am not a native English Speake however, I've been able to understand most. Congratulation !!!! pd: GREETINGS FORM HONDURAS!

  • @raghurammuthyala1023
    @raghurammuthyala10238 жыл бұрын

    Great video! Amazing! Thank you for uploading sir! Sir which one do you think is the best compiler ( user friendly and easy to understand)?

  • @arumaibright5302

    @arumaibright5302

    7 жыл бұрын

    code blocks is fantastic

  • @erictronic
    @erictronic8 жыл бұрын

    Thank you for great lesson!

  • @khajavali7278
    @khajavali72786 жыл бұрын

    Excellent Explaination sir !

  • @kingsapo
    @kingsapo11 жыл бұрын

    Thanks a bunch, got really stuck on this, your video helped a lot!

  • @whateveriwannabe1
    @whateveriwannabe17 жыл бұрын

    These are very helpful videos

  • @aovlover415
    @aovlover4156 жыл бұрын

    well done explained. Should the number sequence ? coz i try random number and false answer. what is your application ? i'm using borland 5.02 ,about your code 'using namespace std' ,borland say that 'namescpace name expected' i'm bit consfused, please answer :)

  • @talhaghaffar1324
    @talhaghaffar132410 жыл бұрын

    my great video lecture ever...

  • @JBMJaworski
    @JBMJaworski11 жыл бұрын

    Thank you for sharing good quality teaching. :-) Regards! Jarek Jaworski

  • @delvindavid2804
    @delvindavid28047 жыл бұрын

    Thank You so much Derek, I wouldn't be able to answer this question in exam ,if I had not found your channel!

  • @WalterCueva
    @WalterCueva10 жыл бұрын

    I have a Two-Dimensional Arrays. Do you have a video showing how to use linear and binary search on a Two-Dimensional Arrays?

  • @aliabid2839
    @aliabid28395 жыл бұрын

    Great work man.

  • @spicytuna08
    @spicytuna085 жыл бұрын

    with C++, there is no need for binary search. Just store data into set STL data structure and use its set::find() member function. But thanks for explaining binary search algo.

  • @Kiran200002
    @Kiran20000211 жыл бұрын

    very nice presentation. Thankyou

  • @user-kr1wc6kk8g
    @user-kr1wc6kk8gАй бұрын

    admiration come it self if you competent like you .thanks

  • @vulcuemil4367
    @vulcuemil43674 жыл бұрын

    When dealing with huge arrays you risk to overflow when calculating mid. A safer way is: mid = low + (high - low) / 2 .

  • @Asterite

    @Asterite

    2 жыл бұрын

    what does overflowing mean?

  • @blind_neighbourhoodNerd
    @blind_neighbourhoodNerd5 жыл бұрын

    Thanks so much for this!!

  • @roasted_guava5706
    @roasted_guava57064 жыл бұрын

    This is so helpful! Thanks!

  • @hokutoueda6215
    @hokutoueda62153 жыл бұрын

    you are wonderful person and i really like your videos.

  • @kironsaha2679
    @kironsaha26794 жыл бұрын

    Amazing video, helped a lot for a project.

  • @abdurraheem2444

    @abdurraheem2444

    4 жыл бұрын

    your project was based upon binary search only🤣🤣

  • @techwithehusain5967
    @techwithehusain59676 жыл бұрын

    You are awesome. Honestly!!

  • @snipere2009
    @snipere20098 жыл бұрын

     Using a C++ array of STRUCTUREs, write a program that takes input of student information - for 10 students - like: 1) Student ID. 2) Student name. 3) Course marks (5 courses for each student).  The program provides below functionality: 1) Show all records. 2) Search and display a student record on ID. 3) Modify the record of a particular student. 4) Show the passing percentage for each course. 5) Show the names of students who failed in a particular course. 6) Show the total marks, the percentage, and the overall letter grade for individual students. 7) Show the names and the letter grades of all students in each course. 9) Show the student names for each letter grade in each course [ A >= 90% - B >= 80% - C >= 70% - D >= 60% - F  It is required to write a modular program.

  • @fortunesuwedi6714
    @fortunesuwedi67148 ай бұрын

    Good explanation

  • @Jordan-og5kd
    @Jordan-og5kd6 жыл бұрын

    great explanation

  • @kpippink
    @kpippink9 жыл бұрын

    Thank you for posting :D

  • @HarisHussainkhan
    @HarisHussainkhan10 жыл бұрын

    Thanxz very Good Instructions Given ..... Thank you Very Much.....

  • @stevezes
    @stevezes5 жыл бұрын

    your mid point calculation can cause overflow

  • @lamp_x
    @lamp_x Жыл бұрын

    So basically, we can't do binary search if the array isn't sorted from low to high? Unlike linear search that can do even though if the array isn't sorted (random number)

  • @tarikabughalib1263
    @tarikabughalib1263 Жыл бұрын

    Thank you so much this is unbelievable helpful

  • @NadaAhmed-zx1ru
    @NadaAhmed-zx1ru9 жыл бұрын

    This was great and simply explained, than you :)

  • @jasonpinto8664
    @jasonpinto86647 жыл бұрын

    excellent!!

  • @halah1995
    @halah19958 жыл бұрын

    Thank you very much sir.

  • @superqaxclub
    @superqaxclub5 жыл бұрын

    Very helpful

  • @jeongmooyoo8692
    @jeongmooyoo86926 жыл бұрын

    very well explained~!!!

  • @user-yk3sf9is2u
    @user-yk3sf9is2u8 жыл бұрын

    Great video

  • @salehabuhussein5229
    @salehabuhussein52293 жыл бұрын

    what software do you use to run cpp file?

  • @aarjavbaxi2299
    @aarjavbaxi22993 жыл бұрын

    It was really cool ! But here is the question though : What if the list/array is unsorted ; I mean if there is a large search space , say 50000 elements ; would we be able to sort it manually ? - NO. So, why don't we have a function for sorting too? Thinking practically , there are not gonna be arrays with just 8 or 10 or 50 elements, so i think we need it. Comment down your thoughts on this. :)

  • @LandonGernand

    @LandonGernand

    3 жыл бұрын

    there are functions for sorting collections called sorting algorithms. there are a lot of good videos on youtube about them

  • @nouraaliabuhlega4023
    @nouraaliabuhlega40235 жыл бұрын

    great work ,

  • @efim_bistrov
    @efim_bistrov11 жыл бұрын

    Thank you very much, it helped me with homework)

  • @4sky
    @4sky10 жыл бұрын

    yo dis my go to video for binary search

  • @bermudatriangle94
    @bermudatriangle944 жыл бұрын

    dude you are amazing!

  • @ankitkumardubey0095
    @ankitkumardubey00955 жыл бұрын

    Thank you so much brother.

  • @hilaritas1544
    @hilaritas15448 жыл бұрын

    Thank you, man!

  • @bluesaint9163
    @bluesaint91638 жыл бұрын

    How could I store all the words in my project? if I will go for a dcitonary?

  • @rehanasghar5181
    @rehanasghar51819 жыл бұрын

    Hey thanks for this great video. It clears my confusions Can you please tell me how do you edit this video? What software you were using to teach us by writing on screen ?

  • @rupal3628
    @rupal36289 жыл бұрын

    Thank you!!

  • @satyamjindal8483
    @satyamjindal84838 жыл бұрын

    Amazing!!

  • @hanzalajamash5376
    @hanzalajamash53767 жыл бұрын

    Thank you Brother

  • @fisslewine1222
    @fisslewine12228 жыл бұрын

    Good tutorial.

  • @snyfalcryo524
    @snyfalcryo5244 жыл бұрын

    My question is, would binary search still works if there's double or more of the specific data you're looking for? If so, how/what's the algorithm?

  • @pendyalaabhishek6273

    @pendyalaabhishek6273

    3 жыл бұрын

    for example if you are looking for 2 numbers you can give search value as input 2 times and run code 2 times ..

  • @mosdomveteran9323
    @mosdomveteran93234 жыл бұрын

    Belissimo!

  • @stephenkamenar
    @stephenkamenar10 жыл бұрын

    Oops, I think that was just a typo on my part and it still doesn't work, right?

  • @Ruhgtfo
    @Ruhgtfo7 жыл бұрын

    Thanks Sir~

  • @braindeadjoe
    @braindeadjoe9 жыл бұрын

    Great work, this really helped me out thank you! Instant like!

  • @AnasMations
    @AnasMations3 жыл бұрын

    you're awesome!

  • @davidgaster
    @davidgaster7 жыл бұрын

    Note that the way you are updating hi and lo means there could be integer overflow. In practice you should use high/2 + low/2. Using (high + low)/2 could potentially cause an overflow if high + low is larger than the maximum representable value: 32 bits = 2^32 -1.

  • @ledues3336

    @ledues3336

    7 жыл бұрын

    DaveyJones I commented that too! I didn't think about how to do it otherwise, thanks

  • @AlyssaMarie-vr8cc

    @AlyssaMarie-vr8cc

    Жыл бұрын

    Ok, interesting - I thought it was mid= low+(high-low)/2 -- is this the same thing as high/2 + low/2 ??

  • @eXeMutey
    @eXeMutey5 жыл бұрын

    Thanks a lot man.

  • @raoulazimullah1898
    @raoulazimullah189811 жыл бұрын

    Big Up!

  • @ramzimohammed3580
    @ramzimohammed35806 ай бұрын

    Thanks

  • @bellsandoor
    @bellsandoor7 жыл бұрын

    you are amazing :)

  • @debashismondal7536
    @debashismondal75367 жыл бұрын

    what software are you using sir?

  • @davidgaster

    @davidgaster

    7 жыл бұрын

    He's using Eclipse

  • @AhmedHadiPADI_scuba_instructor
    @AhmedHadiPADI_scuba_instructor7 жыл бұрын

    what the result of log2(64000) represents ? i mean the 15.966. thanks a lot !

  • @phatchunk99

    @phatchunk99

    7 жыл бұрын

    It takes 16 loops to search a number within an array of 64000 numbers.

  • @nguyenvo7953
    @nguyenvo79534 жыл бұрын

    thanks

  • @alsayedalsisi2709
    @alsayedalsisi27097 жыл бұрын

    But now what would the purpose of the binary search algorithm if the array is not sorted?? The binary search algorithm forces you to have the array sorted, and if you have to sort the array then it would be faster to use linear search than sorting then searching the array.

  • @aNz0r2

    @aNz0r2

    6 жыл бұрын

    Let's assume that you have your target value at the end of your brute (unsorted) array. Linear search will be in worst case, which will give maximum complexity. Meanwhile, a quicksort function before using binary search will be much more efficient, as the complexity will be at least modest. Sorting an array doesn't always mean using 2 for() loops.

  • @nexgen2816

    @nexgen2816

    6 жыл бұрын

    you can use bubble sort algorithm to sort it before search

  • @sakspan3265
    @sakspan326510 жыл бұрын

    Sir can you explain why there is high = size-1 because I am little bit confuse. What is the use of high = size-1? 10:01

  • @aarjavbaxi2299

    @aarjavbaxi2299

    3 жыл бұрын

    Here, size stands for the number of elements in the array ; So according to that , your high index value would be 1 less than the number of elements.

  • @crummmycheese
    @crummmycheese11 жыл бұрын

    execellent

  • @talhaghaffar1324
    @talhaghaffar132410 жыл бұрын

    sir 1 question can u tell me the name of your compiler. which u use in that video...

  • @gluedtogames

    @gluedtogames

    10 жыл бұрын

    Since he didn't ever get back to you, it's Eclipse.

  • @ledues3336

    @ledues3336

    7 жыл бұрын

    Gabe Payne that's not a compiler

  • @ledues3336

    @ledues3336

    7 жыл бұрын

    Talha Ghaffar gcc

  • @DesignAndDevops
    @DesignAndDevops Жыл бұрын

    What about last element

  • @dawitmekuria5349
    @dawitmekuria53495 жыл бұрын

    Sir, that's nice video but it not working for descending array values. Any solution for that?

  • @kkn5523

    @kkn5523

    5 жыл бұрын

    Reverse that array by storing it in another array like this: Say your original array is:array1[size]; int array2[size],k=0; for(int i=size-1;i>=0;i--) { array2[k]=array1[i]; k++; } Apply the sort on array2. That' s what i do. Hope it helps! You can also manipulate the binary sort algorithm but this method seems simpler

  • @dionniebrizuela166
    @dionniebrizuela1668 жыл бұрын

    nice ...video

  • @yemimasandra4796
    @yemimasandra47964 жыл бұрын

    thanks u save my life :')

  • @jasonderero3922
    @jasonderero39227 жыл бұрын

    what happened to you why did you disappear we missed you

  • @millionasseghegn770
    @millionasseghegn770 Жыл бұрын

    now my eyes are widely open

  • @stephenkamenar
    @stephenkamenar11 жыл бұрын

    Whoa, has nobody noticed that what he's showing doesn't even work? Using his example array, try searching for 55, or 98; it can't find it. The check for (low >= high) needs to be just after you check (value == arr[mid])

  • @markbones00
    @markbones0010 жыл бұрын

    i tried, 55 is at index 4 and 98 is at index 7...

  • @ledues3336
    @ledues33367 жыл бұрын

    10:32, what if an overflow happens?

  • @sakirarahman3091

    @sakirarahman3091

    4 жыл бұрын

    Low + (high - low) / 2