Skip to main content

Finding the square root (of a perfect square) using binary search c#

Well, the logic is pretty straightforward. We start a binary search from a range of 0 to NUM, where NUM is the number whose root we are looking for. Each time, we calculate the middle item of the range and see if it is the square root. If not, we search further either in the right side or the left side of the mid item depending on whether the mid^2 is lesser or greater than NUM.

[code language="cpp"]
double GetRoot(double Num,double High=0, double Low=0)
if(High<Low || High-Low==1) return -1; //End case
if(High==Low && Low==0) High=Num; //Start case
int Mid= Low+((High-Low)/2);
if(Mid*Mid==Num) return Mid;
if(Mid*Mid>Num) return GetRoot(Num,Mid,Low);
else if(Mid*Mid<Num) return GetRoot(Num,High,Mid);


If you have thoughts/ suggestions, post em on comments.


  1. I would suggest use a double instead of an int as it is a square root problem so that it solves more cases

  2. Hello! Do you use Twitter? I'd like to follow you if that would be okay.
    I'm definitely enjoying your blog and look forward
    to new updates.


Post a Comment

Popular posts from this blog


GraphQL What is GraphQL It is a specification laid out by Facebook which proposed an alternative way to query and modify data. Think of it is an as a complimentary of REST/RPC. Now head here and read the  original graphQL documentation . It will take 2-3 hours tops but is a worthy read. This will help you build some impressions on it and help contrast against mine below: Why use GraphQL Core advantage Instead of defining custom backend rpc/rest endpoints for every data-shape, graphql allows you to build a more general endpoint which give frontend/mobile engineers freedom and query and play with the data. It might be less efficient, add a bit more complexity (need for things like  data-loader ), harder to standardize and control client-contracts for. What it looses in complexity and control, it gains in flexibility and freedom - provided your data model is worth of a graphql-ish query  How to tell if my data-model graphql-ish? Are there complex relationships between y

About me

Hi, I'm currently working as a software developer in the logistics industry in San Francisco.  My aim is to impact billions of people's live for the better and make the world a better place. Cheers, Vignesh

Backend - Tech refresher 2019

Hello there As a software engineer, it is important to keep updating your skillsets by learning the latest programming-elements (includes  paradigms,  patterns,  languages,  tools and  frameworks ). This becomes a bit easy if you already working on the cutting edge of something. Even then, it is possible to go too deep and loose breadth. I've taken upon myself to do a tech refresher every year. The intent is to read, experiment and understand these elements by spending anywhere between 4 days to 4 weeks. The ultimate goal is: "do I know most  that I need to know to build a planet-scale backend tech-stack ground up" I'll write up my learnings in posts to help myself (and maybe others) refer it. Here is the initial list I'm thinking about: Redis MySQL, GraphQL Aurora, Mesos, Kubernetes Cadence, SWS Cassandra, MangoDB, NoSQL, MySQL, Spanner, S<, DynDB ELK Flink, Storm, Samza, Spark Hadoop HDFS, Yarn, MapReduce Hive, HBase Kafka, Zookeeper NW: