1- var array0 = [ 2 , 3 , 5 , 1 , 2 , 4 , 7 , 9 , 0 , 3 , 3 ] ;
2- var array1 = [ 2 , 3 , 5 , 1 , 2 , 4 , 7 , 9 , 0 , 3 , 3 ] ;
3- var array2 = [ 2 , 3 , 5 , 1 , 2 , 4 , 7 , 9 , 0 , 3 , 3 ] ;
4-
1+ var array = [ 2 , 3 , 5 , 1 , 2 , 4 , 7 , 9 , 0 , 3 , 3 ] ;
52
3+ /**
4+ * Insertionsort algorithm. It's complexity is O(n^2).
5+ *
6+ * @public
7+ * @param {array } array Input array
8+ * @returns {array } array Sorted array
9+ */
610function insertionSort ( array ) {
711 var current ,
812 j ;
@@ -18,32 +22,4 @@ function insertionSort(array) {
1822 return array ;
1923}
2024
21- /* Works in JS because of the functional scope */
22- function insertionSort2 ( array ) {
23- var key ;
24- for ( var i = 0 ; i < array . length ; i += 1 ) {
25- key = array [ i ] ;
26- for ( var j = i - 1 ; j >= 0 && key < array [ j ] ; j -= 1 ) {
27- array [ j + 1 ] = array [ j ] ;
28- }
29- array [ j + 1 ] = key ;
30- }
31- return array ;
32- }
33-
34- /* Works in JS because of the functional scope */
35- function insertionSortDesc ( array ) {
36- var key ;
37- for ( var i = 1 ; i < array . length ; i += 1 ) {
38- key = array [ i ] ;
39- for ( var j = i - 1 ; i >= 0 && array [ j ] < key ; j -= 1 ) {
40- array [ j + 1 ] = array [ j ] ;
41- }
42- array [ j + 1 ] = key ;
43- }
44- return array ;
45- }
46-
47- console . log ( insertionSort ( array0 ) ) ;
48- console . log ( insertionSort2 ( array1 ) ) ;
49- console . log ( insertionSortDesc ( array2 ) ) ;
25+ console . log ( insertionSort ( array ) ) ;
0 commit comments