Monthly Archives: March 2019

Heap Sort

Time complexity: O(n log n) Heapsort is O(n log n) even in worst case scenario. It uses a heap data structure (tree). You build the tree by adding each new value to the end and then bubbling that value up … Continue reading

Posted in programming | Tagged , | Leave a comment

Quick Sort

Time complexity average case: O(n log n) Time complexity worst case: O(n²) Quicksort is nlogn most of the time & usually 2 or 3 times quicker than MergeSort but can be n² in some cases, e.g when the numbers are … Continue reading

Posted in programming | Tagged , | Leave a comment

Merge Sort

Time complexity: O(nlogn) The most common way to implement Merge Sort is with recursion:https://gist.github.com/adamkorg/99cae1fa4da0bc8431d040c1e8f516fd This uses divide and conquer. Divide in half repeatedly until we have list of single elements. Then we start comparing those elements to build up a … Continue reading

Posted in programming | Tagged , | Leave a comment

Bubble Sort

This is going to be the first in a series of sorting algorithm posts. I thought I’d make these posts so I can quickly refresh my memory of the algorithms in the future. Time Complexity: O(n²) Bubble sort is simple … Continue reading

Posted in programming | Tagged , | Leave a comment

Thoughts on recursive algorithms

I have always intuitively shied away from using recursion in my code wherever possible. The few times I have had to implement it were mainly in some form of tree traversal logic. I am a little uncomfortable in relying on … Continue reading

Posted in programming | Tagged , | Leave a comment

Thoughts on the software development process

I’m going to talk about some reading material and my own ideas on the software development process: Hackers and Painters essay by Paul Graham Creative Selection by Ken Kocienda Facebook mobile development article by Android Authority My own thoughts “Hackers … Continue reading

Posted in technology | Tagged , | Leave a comment