SOURCE

var arr = [];

for (var i=0;i<10;i++) {
    arr.push(Math.trunc(Math.random()*100));
}
console.log(arr);

/// 冒泡
// var temp;
// for (var i = 0;i<arr.length;i++) {

//     for (var j = 0;j<arr.length-i;j++) {
//         if(arr[j]>arr[j+1]){
//             temp = arr[j+1];
//             arr[j+1] = arr[j];
//             arr[j] = temp;
//         }
//     }
// }

///选择排序
// var minIdx,temp;
// for (var i = 0;i<arr.length-1;i++) {
//     minIdx = i;

//     for (var j = i+1;j<arr.length;j++) {
//         if(arr[j] < arr[minIdx]) {
//             minIdx = j;
//         }
//     }

//     temp = arr[i];
//     arr[i] = arr[minIdx];
//     arr[minIdx] = temp;
// }

/// 插入排序
// var current,preIdx;
// for (var i=1;i<arr.length;i++){

//     preIdx = i - 1;
//     current = arr[i];

//     while(preIdx >= 0 && arr[preIdx] > current) {
//         arr[preIdx+1]=arr[preIdx];
//         preIdx--;
//     }

//     arr[preIdx+1] = current;
//     console.log(arr);
// }

/// 希尔排序
var gap = 0,length=arr.length;

for (gap=length/2;gap>0;gap=Math.floor(gap/2)) {
    for (var a=0;a<gap;a++) {
        var preIdx,current;

        for (var j = a+gap;j<length;j+=gap){
            preIdx = j-gap;
            current = arr[j];

            while (preIdx>=0 && arr[preIdx] > current){
                arr[preIdx+gap] = arr[preIdx];
                preIdx -= gap;
            }

            arr[preIdx+gap] = current;
        }
    }
}

console.log(arr);
console 命令行工具 X clear

                    
>
console