skip navigation

JavaScript: DHTML Insertion Sort

This page demonstrates the Insertion Sort algorithm.

idcolourrandom
1green70
2green617
3blue887
4purple211
5green174
6green365
7yellow499
8red32
9green903
10red563
11green615
12red288
13yellow821
14green973
15purple869
16green906
17orange102
18purple717
19orange288
20orange355
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]