JavaScript中三種常見的排序方法
1、快速排序:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>快速排序</title>
</head>
<body>
<script>
var ary=[21,8,4,32,5];
function quickSort(ary){
if(ary.length<=1){
return ary;
}
var num=Math.floor(ary.length/2);
var numValue=ary.splice(num,1)[0];
var left=[];
var right=[];
for(var i=0; i<ary.length; i++){
var cur=ary[i];
if(cur<numValue){
left.push(cur);
}else{
right.push(cur);
}
}
return quickSort(left).concat([numValue],quickSort(right));
}
document.write(quickSort(ary));
</script>
</body>
</html>
2、插入排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>插入排序</title>
</head>
<body>
<script>
var ary=[21,8,4,32,5];
function insertSort(ary){
var left=ary.splice(0,1);
for(var i=0; i<ary.length; i++){
var cur=ary[i];
for(var j=left.length-1; j>=0;){
var nex=left[j];
if(cur<nex){
j--;
if(j===-1){
left.unshift(cur);
}
}else{
left.splice(j+1,0,cur);
break;
}
}
}
return left;
}
document.write(insertSort(ary));
</script>
</body>
</html>
3、冒泡排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>冒泡排序</title>
</head>
<body>
<script>
var ary=[21,32,2,9,4];
function bubbleSort(ary){
for(var i=0; i<ary.length; i++){
for(var j=0; j<ary.length-i-1; j++){
if(ary[j]>ary[j+1]){
var tmp=ary[j+1];
ary[j+1]=ary[j];
ary[j]=tmp;
}
}
}
return ary;
}
document.write(bubbleSort(ary));
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
關(guān)于JSON解析的實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了關(guān)于JSON解析的實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
JS拖拽的進(jìn)一步練習(xí),移動(dòng)與拉伸實(shí)現(xiàn)代碼
這次增加了一些相關(guān)的功能,增加四個(gè)角的拉伸改變寬度,主要還是用到一些簡(jiǎn)單的坐標(biāo)位置計(jì)算,沒(méi)有什么技術(shù)難度,熟練了一下自己對(duì)拖拽的運(yùn)用2012-05-05
javascript中的parseInt和parseFloat區(qū)別
這篇文章用簡(jiǎn)單的小例子演示了parseInt和parseFloat區(qū)別,有需要的朋友可以參考一下2013-07-07
如何使用50行javaScript代碼實(shí)現(xiàn)簡(jiǎn)單版的call,apply,bind
這篇文章主要介紹了50行javaScript代碼實(shí)現(xiàn)簡(jiǎn)單版的call,apply,bind過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
javascript匿名函數(shù)中的''return function()''作用
這篇文章主要介紹了javascript匿名函數(shù)中的'return function()'作用介紹,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
用javascript實(shí)現(xiàn)代替marquee的滾動(dòng)字幕效果代碼
用javascript實(shí)現(xiàn)代替marquee的滾動(dòng)字幕效果代碼...2007-10-10
理解JavaScript中的適配器模式Adapter?Pattern
這篇文章主要介紹了理解JavaScript中的適配器模式,適配器模式即Adapter?Pattern,是作為兩個(gè)不兼容的接口之間的橋梁。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,下文更多相關(guān)介紹需要的小伙伴可以參考一下2022-04-04

