skip navigation

JavaScript: DHTML Insertion Sort

This page demonstrates the Insertion Sort algorithm.

idcolourrandom
1yellow689
2purple578
3purple362
4purple319
5yellow547
6red136
7red390
8yellow422
9green910
10purple640
11green13
12purple166
13green684
14purple345
15purple817
16blue58
17blue829
18orange189
19red948
20purple161
Sort by DESC?

[add rows to TABLE]

How does it work?

For a more detailed discussion on the sorting process, you can refer to the Bubble Sort page. The only difference between the two is the actual sorting algorithm, with the Insertion Sort, in theory, being a little bit faster:

// global variables var parent = null; // 'parent' node var items = new Array(); // array of 'child' nodes var col = 0; // column for sorting function sortTable(tableid, n, desc) { parent = document.getElementById(tableid); col = n; if(parent.nodeName != "TBODY") parent = parent.getElementsByTagName("TBODY")[0]; if(parent.nodeName != "TBODY") return false; // assert: parent is now a TBODY node items = parent.getElementsByTagName("TR"); var N = items.length; // insertion sort for(var j=1; j < N; j++) { for(var i=j; i > 0 && compare(get(i), get(i-1), desc); i--) { exchange(i, i-1); } } }

For more advanced (and complicated) sorting techniques, see the Shell Sort and Quick Sort demonstrations.

Related Articles

Other Sorting Algorithms

Advanced Code

[Back to JavaScript]


Send Feedback

Send Your Feedback (will not be published) (optional) CAPTCHA refresh <- copy the digits from the image into this box

[top]