排序算法总结

一、冒泡排序

/**
 * [冒泡算法]
 * @param {[type]} ary [description]
 * 把最大往上冒
 */
function BubbleSortArray(ary){

    for (var i = 0, len = ary.length; i < len; i++) {
        for (var n = 0; n < len - i; n++) {
                if (ary[n] > ary[n + 1]) {
                    var temp;
                    temp = ary[n];
                    ary[n] = ary[n + 1];
                    ary[n + 1] = temp;
                }
        };
    };
    return ary;
}
View Code

二、选择排序

/**
 * [选择排序]
 * @param {[type]} ary [description]
 * 每次选择最小的
 */
function SelectSortArray (ary) {
    var min_index;
    for (var i = 0, len = ary.length; i < len - 1; i++) {
        min_index = i;
        for (var n = i + 1; n < len; n++) {
            if (ary[n] < ary[min_index]) {
                min_index = n;
            };            
        };
        if (min_index != i) {
            var temp;
            temp = ary[i];
            ary[i] = ary[min_index];
            ary[min_index] = temp;
        };
    };

    return ary;
}
View Code

三、插入排序

/**
 * [插入排序]
 * @param {[type]} ary [description]
 */
function InsertSortArray(ary){

    for (var i = 1, len = ary.length; i < len; i++) {//因为第一个作为最初排序部分
        var temp = ary[i];
        var n = i - 1;
        while(n >= 0 && ary[n] > temp){
            ary[n + 1] = ary[n];
            n--;
        }
        ary[n + 1] = temp;
    };
    return ary;
}
View Code

 

posted on 2014-03-06 14:50  jian_xie  阅读(214)  评论(0编辑  收藏  举报