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

JavaScript實(shí)現(xiàn)快速排序的方法分析

 更新時(shí)間:2018年01月10日 09:04:23   作者:安靜的嘶吼  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)快速排序的方法,結(jié)合實(shí)例形式分析了快速排序的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JavaScript實(shí)現(xiàn)快速排序的方法。分享給大家供大家參考,具體如下:

思想:

通過分治思想、遞歸方法將數(shù)據(jù)依次分解為包含較小元素和較大元素的不同子序列

1.在數(shù)組中選擇一個(gè)元素為基準(zhǔn)

2.對數(shù)組進(jìn)行遍歷,小于基準(zhǔn)的元素都移到基準(zhǔn)的左邊,大于基準(zhǔn)的元素都移到基準(zhǔn)的右邊

3.對基準(zhǔn)左邊和右邊的兩個(gè)子集,不斷重復(fù)前兩步,直到所有子集只剩下一個(gè)元素為止

實(shí)現(xiàn)代碼:

function sqort(arr){
 if(arr.length===0){
 return [];
}
var left=[];
var right=[];
var pivot=arr[0];//(基準(zhǔn)以首元素)
for(var i=1;i<arr.length;i++){
 if(arr[i]<pivot){
 left.push(arr[i]);
}else{
 right.push(arr[i]);
}
}
return sqort(left).concat(pivot,qsort(right));//遞歸
}
var a=[];
for (i=0;i<10;++i){
a[i]=Math.floor(Math.random()*100+1);
}
console.log(a);
console.log(sqort(a));
//(基準(zhǔn)以中間元素的情況)
function sqort(arr){
 if(arr.length<=1){
 return arr;
}
var left=[];
var right=[];
var pivotIndex=Math.floor(arr.length/2);
var pivot=arr.splice(pivotIndex,1)[0];//(基準(zhǔn)以中間元素)
for(var i=1;i<arr.length;i++){
 if(arr[i]<pivot){
 left.push(arr[i]);
}else{
 right.push(arr[i]);
}
}
return sqort(left).concat(pivot,sqort(right));//遞歸
}
var a=[12,34,23,78,34,26];
console.log(a);
console.log(sqort(a));

注:  對于較小數(shù)組和較大數(shù)組分別遞歸調(diào)用sqort()函數(shù),當(dāng)遞歸結(jié)束時(shí)候,再將較小的數(shù)組與基準(zhǔn)以及較大的數(shù)組連接起來形成最終的有序數(shù)組并返回。

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:

在線動(dòng)畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 12306驗(yàn)證碼破解思路分享

    12306驗(yàn)證碼破解思路分享

    本文給大家分享的是個(gè)人對于12306的新的驗(yàn)證碼系統(tǒng)的破解思路,僅僅是思路,還沒進(jìn)行實(shí)地驗(yàn)證,推薦給大家,拋磚引玉吧。
    2015-03-03
  • 細(xì)說webpack源碼之compile流程-入口函數(shù)run

    細(xì)說webpack源碼之compile流程-入口函數(shù)run

    Webpack 是一個(gè)前端資源加載/打包工具。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對應(yīng)的靜態(tài)資源。這篇文章主要介紹了webpack源碼之compile流程-入口函數(shù)run,需要的朋友可以參考下
    2017-12-12
  • js處理php輸出時(shí)間戳對不上號的解決方法

    js處理php輸出時(shí)間戳對不上號的解決方法

    JS時(shí)間戳為13位,包含3位毫秒的,而PHP只有10位不包含毫秒的,這就是為什么對不上號原因,處理方法如下
    2014-06-06
  • JavaScript保護(hù)密鑰的方法詳解

    JavaScript保護(hù)密鑰的方法詳解

    在前端js編程中,如果涉及到加密通信、加密算法,經(jīng)常會用到密鑰,但密鑰,很容易暴露,?暴露原因:js代碼透明,在瀏覽器中可以查看源碼,從中找到密鑰,所以本文給大家介紹了前端js中如何保護(hù)密鑰,需要的朋友可以參考下
    2024-10-10
  • JS代碼優(yōu)化技巧之通俗版(減少js體積)

    JS代碼優(yōu)化技巧之通俗版(減少js體積)

    如果你問我網(wǎng)站中最影響網(wǎng)站打開速度的是什么?我會告訴是網(wǎng)站中的javascript,簡稱JS。模板中引用的JS文件越多,打開速度越慢,這點(diǎn)我深有體會,不信你看看盧松松博客首頁,使勁優(yōu)化后依然有100K的文件
    2011-12-12
  • three.js實(shí)現(xiàn)3D影院的原理的代碼分析

    three.js實(shí)現(xiàn)3D影院的原理的代碼分析

    本篇文章主要給大家講解了如何通過three.js實(shí)現(xiàn)3D影院的功能以及原理分析,需要的朋友參考一下吧。
    2017-12-12
  • js數(shù)據(jù)類型檢測總結(jié)

    js數(shù)據(jù)類型檢測總結(jié)

    這篇文章給大家分享了js數(shù)據(jù)類型檢測的相關(guān)實(shí)例內(nèi)容,有需要的朋友可以測試下。
    2018-08-08
  • 詳解關(guān)于微信setData回調(diào)函數(shù)中的坑

    詳解關(guān)于微信setData回調(diào)函數(shù)中的坑

    這篇文章主要介紹了詳解關(guān)于微信setData回調(diào)函數(shù)中的坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • JavaScript面向?qū)ο缶幊虒?shí)現(xiàn)模擬

    JavaScript面向?qū)ο缶幊虒?shí)現(xiàn)模擬

    面向?qū)ο缶幊?Object Oriented Programming)將現(xiàn)實(shí)世界中的復(fù)雜關(guān)系抽象成一個(gè)個(gè)對象,通過對象之間的分工合作對現(xiàn)實(shí)世界進(jìn)行模擬
    2022-10-10
  • JS實(shí)現(xiàn)消滅星星小游戲

    JS實(shí)現(xiàn)消滅星星小游戲

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)消滅星星小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

佛教| 昌图县| 沭阳县| 鲁山县| 来宾市| 花莲市| 衡水市| 长寿区| 格尔木市| 双辽市| 东乌珠穆沁旗| 林口县| 定西市| 西畴县| 霍城县| 伽师县| 文化| 馆陶县| 龙岩市| 仪征市| 马龙县| 淮阳县| 霍山县| 迭部县| 汉沽区| 天台县| 高安市| 黄平县| 赤壁市| 和平县| 寻乌县| 杭锦旗| 张掖市| 昌江| 都江堰市| 云和县| 彭水| 望城县| 松原市| 渝北区| 集安市|