欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • 詳解JavaScript實(shí)現(xiàn)繼承的五種經(jīng)典方式(附圖解)

    詳解JavaScript實(shí)現(xiàn)繼承的五種經(jīng)典方式(附圖解)

    JavaScript中的繼承是一種機(jī)制,通過它可以創(chuàng)建一個(gè)對(duì)象,該對(duì)象可以享有另一個(gè)對(duì)象的屬性和方法,本文將詳細(xì)的為大家介紹實(shí)現(xiàn)繼承的五種經(jīng)典方式,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • 用JS生成UUID的方法實(shí)例

    用JS生成UUID的方法實(shí)例

    下面小編就為大家?guī)硪黄肑S生成UUID的方法實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-03-03
  • Bootstrap CSS組件之按鈕組(btn-group)

    Bootstrap CSS組件之按鈕組(btn-group)

    這篇文章主要為大家詳細(xì)介紹了Bootstrap CSS組件之按鈕組(btn-group),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript實(shí)現(xiàn)在頁面刷新時(shí)成功發(fā)送停止請(qǐng)求

    JavaScript實(shí)現(xiàn)在頁面刷新時(shí)成功發(fā)送停止請(qǐng)求

    最近接到一個(gè)需求,需要在頁面刷新或者關(guān)閉瀏覽器標(biāo)簽頁的時(shí)候觸發(fā)停止當(dāng)前sql的接口,所以本文小編給大家詳細(xì)介紹了解決方案和實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2023-11-11
  • 微信小程序如何在頁面跳轉(zhuǎn)時(shí)進(jìn)行頁面導(dǎo)航

    微信小程序如何在頁面跳轉(zhuǎn)時(shí)進(jìn)行頁面導(dǎo)航

    小程序能夠在不同的頁面進(jìn)行跳轉(zhuǎn)切換,路由起到了至關(guān)重要的作用,下面這篇文章主要給大家介紹了關(guān)于微信小程序如何在頁面跳轉(zhuǎn)時(shí)進(jìn)行頁面導(dǎo)航的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • javascript中的event loop事件循環(huán)詳解

    javascript中的event loop事件循環(huán)詳解

    這篇文章主要給大家介紹了關(guān)于javascript中event loop事件循環(huán)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • js獲取地址欄中傳遞的參數(shù)(兩種方法)

    js獲取地址欄中傳遞的參數(shù)(兩種方法)

    本文主要介紹了如何獲取地址欄中的參數(shù)的兩種方法。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)字時(shí)鐘效果

    js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)字時(shí)鐘效果

    本文主要介紹了js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)字時(shí)鐘效果的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • JS實(shí)現(xiàn)隔行換色的表格排序

    JS實(shí)現(xiàn)隔行換色的表格排序

    本篇文章主要介紹了JS實(shí)現(xiàn)隔行換色的表格排序的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • JavaScript腳本判斷蜘蛛來源的方法

    JavaScript腳本判斷蜘蛛來源的方法

    本篇文章給大家介紹js判斷蜘蛛來源的方法,此方法的腳本是寫在body的onload里面的,當(dāng)頁面進(jìn)行加載時(shí)就進(jìn)行判斷,感興趣的朋友一起看看吧
    2015-09-09

最新評(píng)論