Skip to main content

Binary Searching

 

This is the beginning of my new series about algorithms.

Firstly let’s talk about Algorithms in general.

According to Wikipedia Algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always unambiguous and are used as specifications for performing calculations, data processing, automated reasoning, and other tasks.

Imagine that you are looking for someone with a surname starting with K on the phone book (old-school – I know). Surly you can start from the beginning of the book and looking for “K”, but probably you won’t do it like that. I’m sure you will open the book somewhere in the middle because you know that “K” is somewhere in the middle of the alphabet.

Now imagine that you are logging in to Twitter or any other social platform. When you are doing it you have to put your nickname and password. Twitter must check if you have an account and look into the database for your nickname. Let’s say that your nick is whoAmI. The platform can start looking from “A” but it will make more sense if it will start somewhere in the middle.

That’s the problem of binary searching. With the examples which I provide, we should use the very same algorithm which is binary searching.

Let’s look at how to write this algorithm in Python.

In the two last lines, I’m tasting my algorithm and printing to the console the output. As you can see in line 19 the output is 2. Remember that we are counting from 0. “None” in Python means that there is nothing there.

I hope that the explanation and examples which I put here are clear for you. Leave a comment if you have any questions or visit the Contact section on this page

Comments

Popular posts from this blog

How to build FAQ Chatbot on Dialogflow?

  After Google I/O I’m inspired and excited to try new APIs and learn new stuff from Google. This time I decided to try Dialogflow and build a Flutter Chatbot app that will answer some frequently asked questions about Dialogflow. This time I want to be focused more on Dialogflow rather than Flutter. Firstly, go to  Dialogflow ES console , create a new Agent, specify the agent’s name, choose English as a language and click “Create”. As you created a new agent go to setting and enable beta features and APIs and Save. Now let’s model our Dialogflow agent When you create a new Dialogflow agent, two default intents will be created automatically. The  Default Welcome Intent  is the first flow you get to when you start a conversation with the agent. The  Default Fallback Intent  is the flow you’ll get once the agent can’t understand you or can not match intent with what you just said. Click  Intents > Default Welcome Intent Scroll down to  Responses ....

Flutter 2 is here! What’s new?

  Flutter 2 is finally released. And it has a bunch of new stuff! As my core tech for this year is Flutter and automation (wait for it) I will write about it a lot! Here I want just to start the journey and show you the coolest news in Flutter 2 Web support Flutter’s web support has transitioned from beta to the stable channel. With this initial stable release, Flutter pushes the reusability of code to another level with the support of the web platform. So now when you create a Flutter app that is stable, the web is just another device target for your app. Find more details about this stable release in  Flutter’s web support blog post . Desktop The ReorderableListView now has grab handles for easy drag ’n’ drop with a mouse In this release, It was announced that Flutter’s desktop support is available in the stable channel under an early release flag. What this means is that we’re ready for you to give it a try as a deployment target for your Flutter apps: you can think of it a...

What’s new in ARKit 4

  Here it is. The latest version of Apple’s Augmented Reality framework,  ARKit 4 , has just been announced at  WWDC 2020 . Let’s see what’s new in ARKit 4 and for Augmented Reality app development on iOS.  If you’re more inquisitive I linked all stuff directly to Apple documentation. Location anchors ARKit  location anchors  allow you to place virtual content in relation to anchors in the real world, such as points of interest in a city, taking the AR experience into the outdoors.   By setting geographic coordinates (latitude, longitude, and altitude) and leveraging data from Apple Maps, you can create AR experiences linked to a specific world location. Apple calls this process “visual localization”, basically locating your device in relation to its surroundings with a higher grade of accuracy.   All iPhones & iPad with at least an A12 bionic chip and GPS are supported. Depth API The new ARKit  depth API , coming...