最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js三種排序算法分享

 更新時(shí)間:2012年08月16日 11:12:06   作者:  
近來無聊,翻出來大學(xué)時(shí)候的數(shù)據(jù)結(jié)構(gòu)教材來看。突然想起,大學(xué)時(shí)候就想過用js實(shí)現(xiàn)基本的排序算法的事情,反正閑來無事,便寫出來后記錄于此
復(fù)制代碼 代碼如下:

/**
* 值交換操作
* arr 被操作的數(shù)組
* i 被操作元素索引值
* j 被操作兩元素的距離
*/
function refer(arr, i, j){
var change = (arr[i] - arr[i - j]) < 0 ? true : false, value;
if (change) {
value = arr[i];
arr[i] = arr[i - j];
arr[i - j] = value;
return arguments.callee(arr, i - j, j);
}
else {
return arr;
}
}
//插入排序
function insert(array){
for (var i = 1, len = array.length; i < len; i++) {
if (array[i] < array[i - 1]) {
refer(array, i, 1);
}
}
return array;
}

上面的部分是插入排序,然后是希爾排序:
復(fù)制代碼 代碼如下:

//希爾排序
function shell(array){
var length = array.length, value;
for (var i = Math.floor(length / 2); i > 0; i = Math.floor(i / 2)) {
for (var j = i; j < length; j++) {
if (array[j] < array[j - i]) {
refer(array, j, i);
}
else {
continue;
}
}
}
return array;
}

兩種方法當(dāng)中用到的refer方法為同一個(gè)方法。最后是歸并排序:
復(fù)制代碼 代碼如下:

//歸并排序
function order(arr1, arr2){
var arrLong = arr1.length > arr2.length ? arr1 : arr2;
var arrShort = arr1.length <= arr2.length ? arr1 : arr2
var arr = [];
for (var i = 0, l = arrShort.length; i < l; i++) {
for (var j = 0, len = arrLong.length; j < len; j++) {
if (arrShort[i] < arrLong[j]) {
arr.push(arrShort[i]);
if (i == l - 1) {
for (var m = 0, n = arrLong.length; m < n; m++) {
    arr[arr.length] = arrLong[m];
     }
      }
      break;
    }
else {
arr.push(arrLong[j]);
arrLong.shift();
continue;
}
}
}
return arr;
}

有好建議的同學(xué)可以留言!在此不多余贅述了,一切看代碼吧。

相關(guān)文章

最新評(píng)論

怀仁县| 衡南县| 城市| 温宿县| 微博| 沙洋县| 鄂伦春自治旗| 依兰县| 新疆| 龙游县| 漠河县| 新安县| 浦东新区| 虹口区| 彭阳县| 台北县| 理塘县| 锡林浩特市| 青田县| 祁阳县| 忻州市| 吉水县| 苍梧县| 达孜县| 信宜市| 秭归县| 长寿区| 贵德县| 陕西省| 翁源县| 阿拉善左旗| 临海市| 玉溪市| 祥云县| 阿鲁科尔沁旗| 疏勒县| 图木舒克市| 安平县| 海阳市| 宣武区| 西昌市|