# Basic Sorting Algorithms

You will likely *never* need to implement a sorting algorithm - but understanding how they work could come in handy at some point. Interviews and workarounds for framework problems come to mind.

You will likely never have to write a search algorithm, except when you're in an interview. In fact, just yesterday, I was talking to a colleague of mine at Microsoft (a super talented engineer) and he shared with me that he was asked to write a Bubble Sort routine! On a white board!

Interviewers ask this question because they want to see how you write code. If they ask you to write Bubble Sort, consider yourself lucky! They're giving you a softball.

Not everyone can remember this algorithm so be sure to ask questions... it's OK. Also: remember they just want to see how you think through a problem, so chill out and answer as best you can.

## Divide and Conquer

As you go through these sorting and searching algorithms, see if you can spot the "divide and conquer" approach being used. This concept is the foundation of so many optimizations in computer science - database indexes, for instance.

Divide and conquer is *algorithmic* which is a massive improvement over *linear* time complexity. Do you know what that means and why? We'll get into it!