Profile

Cover photo
Daniel Imms
Works at Microsoft
490 followers|3,056,672 views
AboutPostsCollections

Stream

Daniel Imms

Shared publicly  - 
 
My latest article is on radix sort, by far the most search for term on the site to date. Complete with implementations in Java, C#, Ruby, Python and JavaScript.
LSD radix sort is a stable distribution sort similar to bucket sort, that distributes values into buckets based on the digits within the value.
2
4
Add a comment...

Daniel Imms

Shared publicly  - 
 
Spent a chunk of the weekend writing up a #javascript implementation for my AVL tree article. The new npm module is up at http://npmjs.com/package/@tyriar/avl-tree #computerscience  
The AVL tree, named after its inventors Georgy Adelson-Velsky and Evgenii Landis, is a type of self-balancing binary search tree. The tree re-organises itself after every insert and delete so that the tree height is approximately \log n nodes high, allowing search in O(\log n) time. The re-organising does not guarantee a perfectly balanced tree, it is however good enough to guarantee O(\log n) search.
4
1
Add a comment...

Daniel Imms

Shared publicly  - 
 
Wrote up a small article on comb sort over the weekend, examples in C#, Java, JS, Python and Ruby
Comb sort is an O(n^2) variation of the bubble sort sorting algorithm.
3
Add a comment...

Daniel Imms

Shared publicly  - 
 
Big updates to the binary heap article: C# impl, content revamp, more images, new animations! ‪#‎compsci‬ ‪#‎programming‬

A detailed look at why the build heap operation is linear is coming soon :)
A binary heap is a binary tree data structure that typically uses an array or list as its underlying data structure. Heaps are one of the fundamental data structures that all software developers should have in their toolkit due to its fast extraction of either the minimum or the maximum element in a collection.
2
Add a comment...

Daniel Imms

Shared publicly  - 
 
The new style animations with controls are now available on the Binomial heap article #compsci
A binomial heap is a priority queue data structure similar to the binary heap only with a more strict structure, it supports quicker merging of two heaps in Θ(\log n) at the cost of a slower find minimum operation. A binomial heap is made up of a series of unique ‘binomial trees’ which are constructed from smaller binomial trees.
3
Chris Greene's profile photoDaniel Imms's profile photo
2 comments
 
Cheers, I've put quite a bit of time in it :P There are still many things I want to improve though.
Add a comment...

Daniel Imms

Shared publicly  - 
 
I did a write up on how to sync Visual Studio Code extensions in v1.2.0 #vscode
With the new command line arguments allowing [installation and removal of extensions](https://github.com/Microsoft/vscode/issues/691) becoming available in the latest version of VS Code, it is now possible to automate extension syncing relatively easily.
1
Add a comment...

Daniel Imms

Shared publicly  - 
 
I just finished adding a python implementation to the binary heap article http://www.growingwiththeweb.com/data-structures/binary-heap/overview/
A binary heap is a binary tree data structure that typically uses an array or list as its underlying data structure. Heaps are one of the fundamental data structures that all software developers should have in their toolkit due to its fast extraction of either the minimum or the maximum element in a collection.
4
Add a comment...

Daniel Imms

Shared publicly  - 
 
Wrote up an article on odd-even sort over the weekend, code examples in the usual languages
Odd-even sort is an O(n^2) variation of the bubble sort sorting algorithm.
5
Daniel Imms's profile photoNazim Amin's profile photo
3 comments
 
Yes! Will do :)
Add a comment...

Daniel Imms

Shared publicly  - 
 
Wrote up a proof for binary heap's build heap linear time complexity on the weekend, tried to focus on simplicity
The binary heap data structure supports a build heap operation that runs in O(n). Intuitively it would seem that it should run in O(n \log n) time however, since it runs an O(\log n) operation n/2 times. This article provides a proof of the linear run time.
2
Add a comment...

Daniel Imms

Shared publicly  - 
 
2016 Australian census stores names and addresses, prompting privacy, security outrage.
3
Ron Waldon's profile photo
 
Love the headline. Also, I wonder if that IBM guy was disciplined for speaking out of turn?
Add a comment...

Daniel Imms

Shared publicly  - 
 
Spent a chunk of the weekend updating the Fib heap visualisations to include playback controls and added a C# impl!
A Fibonacci heap is a heap data structure similar to the binomial heap, only with a few modifications and a looser structure. The Fibonacci heap was designed in order to improve Dijkstra’s shortest path algorithm from O(m \log n) to O(m + n \log n) by optimising the operations used most by the algorithm. Its name derives from the fact that the Fibonacci sequence is used in the complexity analysis of its operations.
1
Add a comment...

Daniel Imms

Shared publicly  - 
 
Finally got around to finishing up the python versions of the sorting algorithms #python #algorithms #computerscience
A sorting algorithm takes a list of items and sorts them in a particular order, most commonly alphabetically or numerical.
2
Add a comment...
Daniel's Collections
Story
Tagline
Passionate software engineer and blogger
Introduction
I make software for a living and I love it. Some topics I'm particularly interested in are making delightful user experiences, achieving great performance and creating a semantic and accessible web. I speak a little Japanese, a little Korean and a bunch of programming languages.
Basic Information
Gender
Male
Work
Occupation
Software Development Engineer
Employment
  • Microsoft
    Software Engineer II, 2016 - present
  • Amazon
    Software Development Engineer, 2013 - 2016
  • ACT Government
    Senior ASP.NET Developer, 2012 - 2013
  • F1 Solutions
    .NET Software Developer, 2010 - 2012
  • CEA Technologies
    Software Engineer, 2009 - 2010