Google Software Developer Mock Interview

Practice 30 Google Software Developer interview questions covering algorithms, system design, and coding challenges.

WRITTEN BY WILLIAM SWANSEN
QUESTION 8 OF 30

Describe how do you implement an insertion sort algorithm, and what's the easiest way to do it?

If the Google interviewer asks ten software developers to describe how to implement a sort algorithm, they will probably get 10 slightly different but related answers. Every software developer has a method and a work style of their own that works for them and makes them efficient at their job. An interviewer in this case wants to hear about the method you use and if you take any shortcuts to arrive at the final product. They want to know if you take shortcuts that could compromise the quality of work you are doing. They would like to hear about your development methodology and how you implement an insertion sort algorithm while doing your due diligence and quality checks along the way. In simple terms, the way an insertion sort works is it starts from the index 1 (not 0), and each index starting from index 1 is like a new card that you have to place at the right position in a sorted sub-array on the left side.

"I can give several examples of Insertion Sorts, but I think to give you a better explanation, it would make more sense to list in detail the characteristics of an Insertion Sort. Let's start with the first one.

1. There are two types...Selection Sort and Bubble Sort algorithms.
2. They are efficient for smaller data sets but very inefficient for larger data lists.
3. The stable sorting technique does not change the relative order of elements that are equal.
4. It doesn't take up much space. Unlike bubble sort, an insertion sort also requires additional memory space.
5. An Insertion Sort is adaptive, which means it reduces the total number of steps required for a partially sorted array to provide input."

William Swansen
30 QUESTIONS & ANSWERS · GOOGLE
See membership