var arr = [1,4,2,9,7,6,5,4,7,5];
// 冒泡排序(通俗的说就是j 和 j+1打,谁赢了谁去后面)
for(var i = 1;i<arr.length;i++){
for(var j = 0;j<arr.length - i;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
// 选择排序(通俗的说就是j 和i打,谁赢了谁去前面)
for(var i = 0;i<arr.length-1;i++){
for(var j = i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
console.log(arr);
//快速排序:
取数组中间下标的值,再将其他值与该值相比,大于加入右数组,小于加入左数组,递归调用
function quick(arr){
// 递归出口条件
if(arr.length<=1){return arr;}
// 获取中间下标
var centerindex = arr.length%2==0?arr.length/2:(arr.length+1)/2;
// 获取中间下标对应的值
var centerElement = arr[centerindex];
// 创建左右数组
var left = [];
var right = [];
// 循环判断,若元素大于中间下表对应的值则加入左数组,反之加入右数组
for(var i = 0;i<arr.length;i++){
if((i!=centerindex)&&(arr[i]>=centerElement)){
right.push(arr[i]);
}
if((i!=centerindex)&&(arr[i]<centerElement)){
left.push(arr[i]);
}
}
//递归调用该函数
return quick(left).concat(centerElement).concat(quick(right));
}
console.log(quick(arr));
继续阅读与本文标签相同的文章
上一篇 :
js判断手机号实例讲解
下一篇 :
国际黑客网络如何将被盗新闻发布变成1亿美元
-
MySQL的4种事务隔离级别你还不清楚吗?
2026-05-18栏目: 教程
-
来了!云栖大会都能看到什么? | 9月25号栖夜读
2026-05-18栏目: 教程
-
阿里0代码开发平台“宜搭”亮相杭州云栖大会,现场观众体验30秒拼搭应用!
2026-05-18栏目: 教程
-
消息推送报表,让你的推送事半功倍!
2026-05-18栏目: 教程
-
数据分析还是文本分析?文本分析的优势在哪里
2026-05-18栏目: 教程
