Binary Search in Java - Full Simple Coding Tutorial

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

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

  • @jasonmilton7158
    @jasonmilton7158 ปีที่แล้ว +42

    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 4 หลายเดือนก่อน +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...

  • @danielja1832
    @danielja1832 ปีที่แล้ว +142

    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 😭

  • @Hidden_-
    @Hidden_- 4 หลายเดือนก่อน +4

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

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

    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 7 หลายเดือนก่อน +2

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

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

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

  • @artem2055
    @artem2055 ปีที่แล้ว +23

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

  • @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 😊

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

  • @MariaRuiz-qm5ql
    @MariaRuiz-qm5ql ปีที่แล้ว +2

    Every time I need to understand something better I go to TH-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).

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

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

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

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

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

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

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

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

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

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

    Excellent explanation to prepare for a quick interview

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

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

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

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

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

    first attempt and your explanation is very clear

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

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

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

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

  • @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!

  • @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 ❤

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

    Very informative and useful video! Thanks!

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

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

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

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

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

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

  • @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;
    }
    }

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

    Amazing, amazing, amazing explaination John!!

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

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

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

    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.

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

    Yaay love it! more data structures and algorithms please 🙏

  • @BajiShaik-sf5df
    @BajiShaik-sf5df 12 วันที่ผ่านมา

    Super sir❤
    I am from India

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

    Too helpful to describe in words...

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

    Hey please don't stop uploading videos you are gret

  • @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!!! 🥳🥳🎉🎉🎉

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

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

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

    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!

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

    You`re carrying my grade, I love u

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

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

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

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

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

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

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

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

    very good and clear explanation

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

    It is very simple and intuitive.😮😮😮😮

  • @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?

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

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

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

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

  • @ВладиславСалюкТВ-23
    @ВладиславСалюкТВ-23 ปีที่แล้ว

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

  • @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! 😁

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

    It's always good to learn something.

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

    I love your videos, you're fantastic

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

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

    This was helpful. Thanks!

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

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

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

    Hey john,which color scheme and theme do you use in your intellij ide?

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

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

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

    Thanks Jhon!

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

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

  • @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?

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

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

      all of them are equally important

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

    Implement red black tree in java.. Using enums

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

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

    Wow, this is awesome explanations, thank you 😃

  • @SamandarHamrayev-h2h
    @SamandarHamrayev-h2h ปีที่แล้ว +1

    its great video

  • @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 3 หลายเดือนก่อน

      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?

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

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

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

    Excellent tutorial

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

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

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

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

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

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

    Thanks for the content. But why did you write the binarySearch method as private: "private static int binarySearch" ?

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

      Private method restrics the accessiblity of method to the respective class only

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

    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.

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

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

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

    HI, I have a doubt. will low

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

    very thoughtful idea

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

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

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

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

    Could you please send me a link for complete course for learning Java for biggner for yourself

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

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

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

    Does it make sense to use it for Strings array?

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

    Is it possible to run java on colab?

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

    Thanks for the video

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

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

      That's a great way to think about it!

  • @ashishp-c3i
    @ashishp-c3i ปีที่แล้ว

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

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

    Just one question, from what I can see, is that we get a single number in the middle range when they are an odd set of numbers, so I was wondering what happens if we have 20 inputs in the array, which equals to 20 -1 / 2 in terms of index. What is the number evaluated? help please

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

    Thank You Sir

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

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

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

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

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

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

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

    thanks for sharing!

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

    Great sir...

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

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

  • @الجورزماوي
    @الجورزماوي ปีที่แล้ว

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

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

    4:08 "Is 9 nine? Yes it is :)"