国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語言 > JavaScript > 正文

JS排序之快速排序詳解

2024-05-06 15:18:42
字體:
供稿:網(wǎng)友

本文為大家分享了JS快速排序的具體代碼,供大家參考,具體內(nèi)容如下

說明

時(shí)間復(fù)雜度指的是一個(gè)算法執(zhí)行所耗費(fèi)的時(shí)間
空間復(fù)雜度指運(yùn)行完一個(gè)程序所需內(nèi)存的大小
穩(wěn)定指,如果a=b,a在b的前面,排序后a仍然在b的前面
不穩(wěn)定指,如果a=b,a在b的前面,排序后可能會(huì)交換位置

--JS快速排序--

原理

從數(shù)組中選定一個(gè)基數(shù),然后把數(shù)組中的每一項(xiàng)與此基數(shù)做比較,小的放入一個(gè)新數(shù)組,大的放入另外一個(gè)新數(shù)組。然后再采用這樣的方法操作新數(shù)組。直到所有子集只剩下一個(gè)元素,排序完成。

時(shí)間復(fù)雜度,空間復(fù)雜度,穩(wěn)定性

平均時(shí)間復(fù)雜度O(nlogn) 最好情況O(nlogn) 最差情況O(n*n) 空間復(fù)雜度O(logn) 穩(wěn)定性:不穩(wěn)定

快速排序的寫法

var examplearr=[8,94,15,88,55,76,21,39];function fastsort(arr){  if(arr.length<2){    return arr;  }  var left=[];  var right=[];  var pivotIndex=Math.floor(arr.length/2);  var pivot=arr.splice(pivotIndex,1)[0];  for(i=0;i<arr.length;i++){    if(arr[i]<pivot){      left.push(arr[i]);    }else{      right.push(arr[i])    }  }  return fastsort(left).concat([pivot],fastsort(right));}console.log(fastsort(examplearr));

解析

pivotIndex是將數(shù)組的長(zhǎng)度除2向下取整得到的一個(gè)數(shù)值,數(shù)組的長(zhǎng)度是不斷減半的,所以最后它的值為0

pivot是利用splice方法從數(shù)組里獲取一個(gè)基數(shù)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯(cuò)新站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 西城区| 嘉兴市| 盘锦市| 霍城县| 竹溪县| 阆中市| 凤山市| 习水县| 安达市| 云南省| 肃北| 齐齐哈尔市| 临猗县| 嘉祥县| 霍州市| 克什克腾旗| 九江县| 锡林郭勒盟| 清新县| 汉川市| 江北区| 南靖县| 绍兴县| 金秀| 望城县| 云林县| 容城县| 邵阳县| 长沙市| 绥棱县| 西藏| 龙里县| 深圳市| 哈尔滨市| 兴安盟| 安平县| 漯河市| 达孜县| 屯留县| 江陵县| 壤塘县|