...

Full Bio

Google Go Language Future, Programming Language Programmer Will Get Best Paid Jobs

301 days ago

New Coder Tool Promises to Turbo-Charge Coding In Major Programming Language

302 days ago

Why Many Companies Plan To Double Artificial Intelligence Projects In The Next Year

302 days ago

Why 75% SMBs Are Not Worried About Artifical Intelligence Killing Their Jobs

302 days ago

Interview Study Guide for Data Science To Get Job Quickly

305 days ago

Highest Paying Programming Language, Skills: Here Are The Top Earners

652593 views

Top 10 Best Countries for Software Engineers to Work & High in-Demand Programming Languages

576501 views

Which Programming Languages in Demand & Earn The Highest Salaries?

457809 views

50+ Data Structure, Algorithms & Programming Languages Interview Questions for Programmers

272235 views

100+ Data Structure, Algorithms & Programming Language Interview Questions Answers for Programmers - Part 1

234108 views

### A Data Scientist's Guide to Data Structures & Algorithms, Part 1

**Big O Notation**

**Formal Notation**

**Big Ω**: the best-case scenario. The Big Ω of an algorithm describes how quickly an algorithm can run under the best of circumstances.

**Big O**: the worst-case scenario. Typically, we are most concerned with the Big O time because we are interested in how slowly a given algorithm will run, at worst. How do we essentially make the 'worst-case' not as bad as it could be?

**Big θ**: this can only be used to describe the run-time of an algorithm if the Big Ω and the Big O are the same. That is, the algorithm's run time is the same in both the best and worst cases.

- O(log n): aka log time
- O(n): aka linear time
- O(n log n)
- O(n²)
- O(n!)

- Search through the list to find the largest number
- Add that number to a new list
- Go to the original list, search through it again to find the next largest number
- Add that number to the new list and so on...

- Pick an element from your list, known as the pivot. The selection of a pivot is important in determining how quickly a quicksort algorithm will run. For now, we can select the last element each time as the pivot. (For additional information on pivot selection, I recommend the Stanford Coursera algorithms course.)
- Partition the list so that all numbers smaller than the pivot are to its left and all numbers greater than the pivot are to its right.
- For each 'half' of the list, you can treat it as a new list with a new pivot and rearrange each half until it is sorted.

- Grokking Algorithms by Aditya Y. Bhargava
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Stanford University Coursera Algorithms specialization
- Big O cheat sheet