Binary Search in Java - Full Simple Coding Tutorial

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 186

  • @danielja1832
    @danielja1832 Рік тому +139

    My man, we were just covering this in college this week and you happen to be much better at explanations than our professor. You're a legend!

    • @theseriousaccount
      @theseriousaccount Рік тому +5

      College makes more money the longer it takes, it feels like an expensive scam because it is. Learning is best done elsewhere.

    • @programmingwithnurulhuda
      @programmingwithnurulhuda Рік тому

      @@theseriousaccount It's always good to learn something.

    • @frankiia7507
      @frankiia7507 Рік тому +1

      tell your professor that face to face

    • @RishiRajxtrim
      @RishiRajxtrim Рік тому

      Yes, 100 points!

    • @kritibrotodatta5172
      @kritibrotodatta5172 Рік тому +3

      Why do I have to learn this in class 10 😭

  • @jasonmilton7158
    @jasonmilton7158 Рік тому +40

    I’m currently a CS student at UofSC Columbia and YOU played a major role in me getting an A in my first Java class and it looks like you’re also gonna play a major role in me passing the second one. I know when I get my degree you will deserve half the credit good sir. Each of your videos are easily more valuable than a week of in class lectures! Thank you

    • @YasuOsatoku
      @YasuOsatoku 3 місяці тому +1

      It's sad that I'm at UBC - O, and I have to use John's videos to understand the content and prepare for the final...Sometimes the profs are just sloppy and clueless...

  • @Hidden_-
    @Hidden_- 3 місяці тому +4

    You are that one good teacher which this world doesn't deserve but totally needs

  • @HackBoy_YT
    @HackBoy_YT Рік тому +1

    I am a 10 th grade student from India and dont know binary search thank u so much u deserve millions of subscribers 😊

  • @koikoi7666
    @koikoi7666 Рік тому +15

    I'm a Senior Dev in Java and I just discovered your videos this week. Even though i'm experienced in the language I feel like I still learn things from watching your content, the way you explain things is incredibly easy to grasp. Please keep making more content, I think you are much better than other channels or even paid courses I have taken in the past.

    • @yaroslavpanych2067
      @yaroslavpanych2067 6 місяців тому +2

      Pray your boss doesn't discover this comment, you will be demoted to juniors at best!

    • @Heavenset
      @Heavenset 2 місяці тому

      how are you a senior and still don't know the basic sorting algorithm?

  • @MariaRuiz-qm5ql
    @MariaRuiz-qm5ql Рік тому +2

    Every time I need to understand something better I go to UA-cam hoping that you’ve covered it …🙏 Thank you so much!!

  • @viewer_evgeniy
    @viewer_evgeniy Рік тому +1

    I want to add one important thing about moving high and low pointers to the "right" or "left" of middle pointer (mid+1 or mid-1), it's not just because we want to exclude the number (index) which out of our concern already since we know that if our searched value is not equal to the middle pointer value then there is no reason to ever deal with it again. But doing such kind of things (+1 or -1) ensures that we won't be stuck in an infinite loop (in case your searched value is not presented in the array).

  • @5n2joelemmanuel54
    @5n2joelemmanuel54 Рік тому +3

    john is so good at explaining i could binge watch these tutorials and not get bored

    • @CodingWithJohn
      @CodingWithJohn  Рік тому +1

      Have at it!

    • @cloudycode5009
      @cloudycode5009 Рік тому +2

      ​@@CodingWithJohn Hey man, i love so much your videos im a student, im very excited, i want to see videos about Java GUI awt spring

  • @simonrozendal7542
    @simonrozendal7542 Рік тому

    Wow especially with a lot of data, binary search goes really vast and saves a lot of time and energy. thank you John.

  • @artem2055
    @artem2055 Рік тому +23

    i was waiting for it! Please do more videos on algorithms and problem solving in general

  • @RehanAhmad1
    @RehanAhmad1 Рік тому

    you're my end of search as Java Teacher.. no matter what algorithm we use.. 😀

  • @SarangSaraf
    @SarangSaraf Рік тому +2

    Thank you sooo much. I stopped watching my paid udemy Java courses after I found your channel. REALLY!

  • @mylife9751
    @mylife9751 4 місяці тому

    Thank you sir, you're helping alot of icse school, 10th graders 💞

  • @adulmdul8939
    @adulmdul8939 Рік тому

    man you're my rescuer, with sincere love and appreciation

  • @fisheyesarans
    @fisheyesarans Рік тому

    Excellent explanation to prepare for a quick interview

  • @hashantha_lk
    @hashantha_lk Рік тому

    The best explaining ever ! Clarity is top notch John ! Sending gratitude from SriLanka! ❤

  • @andreadiotallevi5780
    @andreadiotallevi5780 Рік тому

    Such an excellent communicator - I wish to become as articulate as you. Amazing video!

  • @auritro3903
    @auritro3903 6 місяців тому

    Damn I have my AP Computer Science A exam tomorrow, you're literally gonna save me :D Thanks!

  • @abuiman5251
    @abuiman5251 Рік тому

    Thank you brother! Please don't stop teach us!! God bless you!

  • @DadaKhan1912
    @DadaKhan1912 Рік тому

    Hi Sir, I have watched every video of Java on your Channel. You are Extremely Super in Teaching Java. And now I want to Learn Java Spring Boot. And I think you are the best teacher to teach Spring Boot in Java. And it is also Tending Technology. So I am telling you to create a playlist on Java Spring Boot. And it will help all the people who want to learn Java Spring Boot. Thank you sir ❤

  • @anishmathew7108
    @anishmathew7108 Рік тому

    I think you are one of the best Java tutorials videos done in UA-cam , can you done tutorials for spring boot

  • @Antonio-kv4lj
    @Antonio-kv4lj Рік тому

    Started learning Java two weeks ago. Your videos are godsent. Really enjoying them. I would very appreciate if you could make video about managing workspace, projects, files and jdks (jres) in Eclipse. I'm having little trouble with understanding all that. Much thanks.

  • @fruttoo
    @fruttoo Рік тому

    One video watched, and boom! I became your subscriber. You''re really good with explanations. Congrats!

  • @jordanT_alker
    @jordanT_alker 7 місяців тому

    thank you John wonderful video
    I will use this on my arrays homework, I have some ideas I want to accelerate faster.

  • @fardovav1
    @fardovav1 Рік тому

    So well explained. Thank you John for coding and explaining each step. Much better than our professor could do!

  • @fahadgaliwango4502
    @fahadgaliwango4502 9 місяців тому

    first attempt and your explanation is very clear

  • @ВладиславСалюкТВ-23

    John , you are the best programmer-blogger I ever seen. Ukraine is watching you right now 🇺🇦❤️

  • @UCE5YhzPOD
    @UCE5YhzPOD Рік тому

    From my experience I would recommend to use half-open intervals instead of segments in all algorithms that use intervals like binary search, sortiing, segment tree and so on. It allows to decrease number of +1/-1 in the code, and this +1/-1 is a place where people often make mistakes.
    private static int binarySearch(int[] numbers, int numberToFind) {
    int low = 0, high = numbers.length;

    while (low + 1 < high) {
    int middlePosition = (low + high) / 2;
    int middleNumber = numbers[middlePosition];
    if (numberToFind < middleNumber) {
    high = middlePosition;
    } else {
    low = middlePosition;
    }
    }
    if (low < numbers.length && numberToFind == numbers[low]) {
    return low;
    } else {
    return -1;
    }
    }

  • @chulsooslaugh1209
    @chulsooslaugh1209 Рік тому

    Your explanations are easy to understand. It might be your voice or your choice of words but whatever it is, I'm thankful that I am able to fully grasp the concept more easily this time compared to when I took it 2 semesters ago. Looking forward to more videos in the future!

  • @revolutionaryfrog
    @revolutionaryfrog 11 місяців тому

    I prefer to make my middle position variable "pointer" but nice simple explanation here!

  • @ruvvier1509
    @ruvvier1509 Рік тому +2

    This is such a good timing to what I am learning in class right now in college. Thank you John!

  • @davidpokol
    @davidpokol Рік тому

    Great vid John, but here is a little thing you didn't mention about the built-in binary search method: If the number that we looking for is not in the array, the built-in method returns -(insertion point).
    So for example, if the array contains the following values {1, 2, 4, 5, 7, 9, 11}, and we would like to find 8, it would print -6.

    • @CodingWithJohn
      @CodingWithJohn  Рік тому +1

      Nice! Didn't realize that about the built in one, that's a nice feature

  • @fadhlifirdaussulaiman1463
    @fadhlifirdaussulaiman1463 9 місяців тому

    Your DSA lectures are making me pass my IVs, damn it I'll repay you one day!!

  • @alexkotusenko
    @alexkotusenko 26 днів тому

    Short and sweet, thank you for an amazing video

  • @denisdominguez7287
    @denisdominguez7287 Рік тому

    Hi John, great video. But here is a small correction. The result of looking for the number 8 should have been -6. Because binarySearch returns the index where the missing number should be -1 (-(insertion point) - 1). But for an exercise is really cool. Thanks for your time 🙂

    • @ManosSef
      @ManosSef Рік тому

      This is not a correction, it's a different way of doing it. Java's built-in library does it this way, John does it by always returning -1 when not found. Depends on if you actually want to know where the missing element would be though.

  • @gnair9064
    @gnair9064 Рік тому

    Hey please don't stop uploading videos you are gret

  • @amongusztav655
    @amongusztav655 Рік тому +2

    Very informative and useful video! Thanks!

  • @aldoumene6201
    @aldoumene6201 Рік тому +1

    Yaay love it! more data structures and algorithms please 🙏

  • @kshitijofthejune
    @kshitijofthejune Рік тому +1

    Implement red black tree in java.. Using enums

  • @kap21031991
    @kap21031991 Рік тому

    This is very good content and explained in very simple manner!! Please try to create tutorials on concurrency and parallelism.

  • @mastershonobi110
    @mastershonobi110 Рік тому

    Thanks John for making these vids; we appreciate your time and effort(s).

  • @palakkhatri6264
    @palakkhatri6264 Рік тому

    Amazing, amazing, amazing explaination John!!

  • @elizabeth00653
    @elizabeth00653 Рік тому

    John I love your Java videos and I really think you're one of the best Java instructors here. I was wondering if you'd consider explaining a Java login project one day with a useful framework, or adding it to your course. That would be so awesome.

  • @ciccioJava
    @ciccioJava Рік тому

    Jhon why dont you start a tutorial about Spring? Thanks to you I learned Java and now I am having some problem with spring without your video! 😁

  • @FabianAshrafian
    @FabianAshrafian Рік тому

    You`re carrying my grade, I love u

  • @kristhianortiz151
    @kristhianortiz151 Рік тому

    I just needed this!!! You're a savior🙏🙏🙏

  • @MannshaanSingh
    @MannshaanSingh 25 днів тому

    Too helpful to describe in words...

  • @rtweakim3122
    @rtweakim3122 7 місяців тому

    It is very simple and intuitive.😮😮😮😮

  • @programmingwithnurulhuda
    @programmingwithnurulhuda Рік тому

    It's always good to learn something.

  • @mouloudguell2763
    @mouloudguell2763 Рік тому

    very good and clear explanation

  • @TheTrueType
    @TheTrueType Рік тому +1

    Hey John, amazing videos you got here on your channel. You are really playing in an own league, thank you very much helped me a ton! Would you mind doing a video about Iterator aswell?

  • @Tranzin40
    @Tranzin40 Рік тому

    cool video, it would be cool to hear about faster search and sorting algorithms

  • @oussamaachour1523
    @oussamaachour1523 Рік тому

    Hey john, thanks for all your tutorials, I would like to see you doing one project with all the oops concepts if that is possible

  • @reapxiety
    @reapxiety Рік тому

    John! I love your vids man, Could you do a Linear Search algorithm?
    I'm honestly having struggles with that algorithm, very much appreciate it

  • @ManishYadav-yp2mi
    @ManishYadav-yp2mi Рік тому

    Your videos are really helpful and good for students like me. If only you can start a series of leetcode solving regularly that would be game changer for us. Whether you upload something or not try to upload problem solving question. thank you

  • @codeZarathustra
    @codeZarathustra Рік тому

    Thanks Jhon!

  • @btrsl
    @btrsl Рік тому

    Great explanation 👌! First time watcher here, will watch more of your content.

    • @CodingWithJohn
      @CodingWithJohn  Рік тому

      Thanks a ton! Hope they're helpful, and let me know if there's anything you'd like to see!

    • @btrsl
      @btrsl Рік тому

      @@CodingWithJohn I've watched more than 10 videos of yours in last couple of days. Learned a lot! I'd love to see some Design Patterns content (implemented in java) on your channel.

    • @btrsl
      @btrsl Рік тому

      and also congrats on 200k subs!!! 🥳🥳🎉🎉🎉

  • @justalilbit8887
    @justalilbit8887 Рік тому

    Thank you John! I 've been digging into search algorithms, lately. It's great to see you made another great video for it.

  • @williamsun2230
    @williamsun2230 Рік тому +1

    Hi John! Love your videos!!! May you make one on the big O notation? Thank you!!!

  • @Talkatfive
    @Talkatfive 8 місяців тому

    Excellent tutorial

  • @explorer10179
    @explorer10179 Рік тому

    Thanks so much. It really helps.
    Can you please upload a video explaining "Static" keyword? Thanks again!

  • @bels1
    @bels1 Рік тому +1

    Fantastic explanation, as always! Can you also make a video on the Big O notation?

  • @LizyAd
    @LizyAd Місяць тому

    This was helpful. Thanks!

  • @benjaminallcock4268
    @benjaminallcock4268 Рік тому

    Wow, this is awesome explanations, thank you 😃

  • @SamandarHamrayev-h2h
    @SamandarHamrayev-h2h Рік тому +1

    its great video

  • @katiebeers2476
    @katiebeers2476 Рік тому

    I love your videos, you're fantastic

  • @sean.d
    @sean.d Рік тому

    Nice detailed tutorial!
    I think it's better/safe to sort the array first @Line12 -->>> numbers = Arrays.stream(numbers).sorted().toArray();

  • @angelcholakov2670
    @angelcholakov2670 Рік тому

    Hi John, I really enjoy your videos and the way you explain java in general, so thanks about what You do I am sure loads of people do appreciate it too. I wonder if You have plans to do a video about GUI any time soon? I would love to see one (if this can be done in one video of course) as I am about there in my java study right now

  • @ngndnd
    @ngndnd Рік тому

    woah wtf this was posted at the perfect time. I searched this up thinking it was one of your older videos lmao

    • @CodingWithJohn
      @CodingWithJohn  Рік тому

      Nice! I stole the thumbnail pic from an older video (forgot to take a new one...) so maybe that thre you off

  • @da_nightcore
    @da_nightcore Рік тому

    yeah man do more prob solving stuff ,really need them in java

  • @csistheonlychoice8256
    @csistheonlychoice8256 Рік тому

    can you make a video about time complexity of algorithms and Big O, Big Ω etc, notations please??

  • @teo_ke
    @teo_ke Рік тому

    could you make video about static in class. how it works and where we should use it in

  • @JavaCodeShorts
    @JavaCodeShorts 5 місяців тому

    thanks for sharing!

  • @findlestick
    @findlestick Рік тому

    Can you do a video about how ChatGPT is changing the coding scene, and its potential consequences?

  • @hemobhai1
    @hemobhai1 Рік тому

    Thank You Sir

  • @ritampramanik1
    @ritampramanik1 7 місяців тому

    Professor your explanation is genius. Can you help me in an additional part, like if I want to print "Sorry we cannot find the number" instead of -1 what are the changes can we make to modify this code? THANK YOU in advance.

  • @noobster9212
    @noobster9212 Рік тому

    very thoughtful idea

  • @prasannsurya9415
    @prasannsurya9415 Рік тому

    Hey john i have a doubt in java, what is the difference between object and instance , please could you make a brief video of that it will very useful to all , and make more understanding of the fundamentals in java

  • @enriquepasa
    @enriquepasa Рік тому

    Thanks for the video

  • @kieranteets527
    @kieranteets527 Рік тому

    I love your videos but i was wondering what editor are your using? Keep up the awesome videos!!

    • @CodingWithJohn
      @CodingWithJohn  Рік тому

      Thanks! I use DaVinci Resolve to edit my videos, it's free and offers everything I need.

  • @beachbuggyracing9305
    @beachbuggyracing9305 Рік тому

    Great sir...

  • @ashishp-c3i
    @ashishp-c3i Рік тому

    Thnx for the wonderful tutorial and keep up the good work => Btw you look like Mark Strong/ Jhonny Sins 🙂

  • @TheGamer720x
    @TheGamer720x Рік тому

    Hi John, I'm curious to know for the experience you have in the software industry, what were the concepts in Java that were crucial in any scenario apart from basic control structures? Any design patterns/frameworks? Any concepts like Inheritance/ Overloading / Overriding etc? Thanks.

  • @eugenesmith9940
    @eugenesmith9940 Рік тому

    I've seen in some binary search realizations that formula to calculate middle pointer looks like that: low + (high - low) / 2. Why is that?
    Also, inside Arrays class this part of binary search looks like: (high - low) /2 >>> 1. How to read such code? What >>> 1 does in this case?

    • @girijashankarn
      @girijashankarn Рік тому

      Sane question…. Did you get any answer on low+(high-low)/2?

  • @trup10ka
    @trup10ka Рік тому

    Hello, this video was again, awsome, you though me so much during year 2022. I do have a request. Could you make a video about How to use Java with server requests and some things aroud this topic (URL's or something; I'm not really educated in this so please forgive me if I described it badly 😀)

  • @eizwaneiz
    @eizwaneiz 11 місяців тому

    you know how good your video is? when a 17 minutes video felt tile 5 minutes.

  • @kingshorts12590
    @kingshorts12590 5 місяців тому

    Thanks sir

  • @الجورزماوي
    @الجورزماوي Рік тому

    hello sir, again with another wonderful video , i would like to ask you if you can make a video about Dependency Injection in java

  • @clarence9527
    @clarence9527 Рік тому

    hi, john, can you make a episode about the backslash usage in java regex please? such as the "\\\\" impies the "\" in java. it is tricky to understand.

  • @ahmedhakeem8183
    @ahmedhakeem8183 Рік тому

    That is great , can you make future vedios like this for other search and sort algorithms and it will be great to explain cone 🥰

    • @CodingWithJohn
      @CodingWithJohn  Рік тому +1

      I have a bunch of sorting algorithm videos already, so check them out! Any particular sort or search algorithm I haven't covered you'd like to see?

    • @programmingwithnurulhuda
      @programmingwithnurulhuda Рік тому

      @@CodingWithJohn It's always good to learn something.

  • @MatthewWeiler1984
    @MatthewWeiler1984 Рік тому +1

    Great explanation of binary search.
    But there's a bug in your method.
    If you pass in an empty array it'll fail since you'll be trying to pull the number from index 0.
    But since the array is empty, it'll throw an IndexOutOfRangeException.

    • @CodingWithJohn
      @CodingWithJohn  Рік тому +1

      Hello, grab the source code and give it a try! An empty array does not throw an exception in the way you described.
      The reason is this:
      int low = 0;
      int high = numbers.length - 1;
      while (low

    • @MatthewWeiler1984
      @MatthewWeiler1984 Рік тому +1

      @@CodingWithJohn damn you're right...I was watching on my TV, so couldn't test it :p

    • @CodingWithJohn
      @CodingWithJohn  Рік тому +1

      No worries, thanks for watching!

  • @Avarn388
    @Avarn388 Рік тому

    Is a good way to think of Binary Search is that if you have a physical dictionary, you’re starting at the middle and going left or right in sections as opposed to starting from the beginning or end of a dictionary? Correct me if I am wrong.

  • @vidyasagar5661
    @vidyasagar5661 Рік тому

    Hii John Thankyou soo much for all your efforts, if possible can you start making videos on java8 features mostly on stream and its supporting methods like we have many in this streams i,e distinct,averaging int,groupingby,mappingby, etc Thanks in advance

  • @yon1623
    @yon1623 Рік тому

    Come teach at my School. the other day i watched your recursion video you explained it 10 times better than my goofy ass tenured professor .

  • @chingie_
    @chingie_ Рік тому

    how convenient, I got an algo exam tomorrow.

  • @artaxerxes360
    @artaxerxes360 Рік тому

    Sir please do a video on apache maven

  • @osmanozturk5891
    @osmanozturk5891 Рік тому

    Thanks John . i have a question
    if our array was int[] ={1,2,4,5,7,9,11,12}
    What search algorithm would we use? (fast)

    • @ManosSef
      @ManosSef Рік тому

      It doesn't matter what the array is, binary search does the job.

  • @isidroleonyork2157
    @isidroleonyork2157 11 місяців тому

    1B elements, 168852 mills. 64G of memory.

  • @hackwithharsha
    @hackwithharsha Рік тому

    00:07:21 Thank You, Any reason to declare private method as static ?

  • @djouudjou
    @djouudjou Рік тому +1

    can we do the same but without hard coding the values ? like ask the user to enter all the vales and the target value ?

    • @Therandomness1235
      @Therandomness1235 2 місяці тому

      Will the user be sorting the numbers while they enter them?
      If not, will there be a way to put the numbers in ascending order?