1、冒泡排序
两个两个的比较,a>b则调换位置。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var arr=[32,45,23,56,12,5,89,3];
function bubblingSort(arr){
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length-1; j++) { //每一轮下来,最后一个都是最大的,对其淘汰,不参与下次的比较
toCom(j,j+1)
};
};
function toCom(prev,next){
var temp='';
if (arr[prev]>arr[next]) {
temp=arr[prev];
arr[prev]=arr[next];
arr[next]=temp;
};
}
return arr;
}
console.log(bubblingSort(arr));
</script>
</body>
</html>
2、快速排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var arr=[32,45,23,56,12,5,89,3,101,34,52,13,200,59,26];
alert(Math.floor(arr.length/2))
function quickSort(arr){
var index=Math.floor(arr.length/2);
var iFlag=arr[index];
var arrLeft=[];
//var arrC=arr.splice(index,1);
var arrC=[];
var arrR=[];
for (var i = 0; i < arr.length; i++) {
if (arr[i]>iFlag) {
arrR.push(arr[i]);
}else if(arr[i]<iFlag){
arrLeft.push(arr[i]);
}else{
arrC.push(arr[i])
};
};
if(arr.length<=1){ //这里必须是小于等于1,不能是==;
return arr;
}
return quickSort(arrLeft).concat(arrC,quickSort(arrR));
}
console.log(quickSort(arr));
</script>
</body>
</html>
2.1、快速排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var arr=[48,13,25,56,32,15,41,3,5,1]
function quickSort(arr){
if (arr.length<=1) {
return arr
};
var index=Math.floor(arr.length/2);
var num=arr[index];
var arrL=[];
var arrC=arr.splice(index,1)
var arrR=[];
for (var i = 0; i < arr.length; i++) {
if(arr[i]>num){
arrR.push(arr[i])
}else if(arr[i]<num){
arrL.push(arr[i])
}else{
arrC.push(arr[i])
}
};
return quickSort(arrL).concat(arrC,quickSort(arrR))
}
console.log(quickSort(arr))
</script>
</body>
</html>