詳解JS中的快速排序與冒泡
1.快速排序思想:
1.1 先找數(shù)組的最中間的一個(gè)數(shù)為基準(zhǔn)
1.2 把數(shù)組通過(guò)此基準(zhǔn)分為小于基準(zhǔn)的left數(shù)組和大于基準(zhǔn)的right數(shù)組,
1.3 遞歸重復(fù)上面的兩個(gè)步驟,
代碼如下:
function quickSort(arr) {
if (arr.length <=1 ){
return arr;
}
var middleIndex = Math.floor(arr.length / 2);
var left = [];
var right = [];
var middle = arr.splice(middleIndex,1)[0];
for (var i = 0; i < arr.length; i++) {
if ( arr[i] > middle) {
right.push(arr[i]);
} else {
left.push(arr[i]);
}
}
return quickSort(left).concat(middle,quickSort(right));
}
2. 冒泡排序思想:
2.1 兩兩比較,交換位置
2.2 循環(huán)數(shù)組
代碼如下:
function bubbleSort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length -1 -i; j++) {
if( arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
JavaScript數(shù)組去重的方法總結(jié)【12種方法,號(hào)稱史上最全】
這篇文章主要介紹了JavaScript數(shù)組去重的方法,結(jié)合實(shí)例形式較為詳細(xì)的總結(jié)分析了12種方法數(shù)組去重的方法,需要的朋友可以參考下2019-02-02
ionic js 模型 $ionicModal 可以遮住用戶主界面的內(nèi)容框
這篇文章主要介紹了ionic js 模型 $ionicModal 可以遮住用戶主界面的內(nèi)容框的相關(guān)資料,需要的朋友可以參考下2016-06-06
詳解小程序中h5頁(yè)面onShow實(shí)現(xiàn)及跨頁(yè)面通信方案
這篇文章主要介紹了小程序中h5頁(yè)面onShow實(shí)現(xiàn)及跨頁(yè)面通信方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
JS中使用 after 偽類清除浮動(dòng)實(shí)例
這篇文章主要介紹了使用 after 偽類清除浮動(dòng)實(shí)例,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-03-03
使用canvas修改二維碼顏色的實(shí)現(xiàn)過(guò)程
二維碼作為現(xiàn)代信息傳遞的重要工具,其黑白色調(diào)一直是其標(biāo)志性特征,然而,有時(shí)我們可能希望個(gè)性化定制二維碼的顏色,以適應(yīng)特定設(shè)計(jì)需求或提高可識(shí)別性,在這篇文章中,我們將深入探討如何使用Canvas技術(shù)修改二維碼的顏色,為二維碼添加更多創(chuàng)意和個(gè)性2023-11-11
js獲取上傳文件的絕對(duì)路徑實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js獲取上傳文件的絕對(duì)路徑實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08

