博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组排序
阅读量:4316 次
发布时间:2019-06-06

本文共 1147 字,大约阅读时间需要 3 分钟。

1.冒泡排序

function sort(arr){

    for(var i = 0;i<arr.length-1;i++){
        for(var j =0; j<arr.length-i-1;j++){
             if(arr[j]>arr[j+1]){
                var temp = arr[j];
                arr[j]=arr[j+1];
               arr[j+1]=temp;
          }
     }
   }
return arr;
}

2.选择排序

function selectSort(arr) {

for(var i = 0; i < arr.length; i++) { //遍历数组
var minIndex = i; //i是数组最小值的索引
for(j = i + 1; j < arr.length; j++) {
if(arr[minIndex] > arr[j]) {
minIndex = j;
}
}
if(i != minIndex) { //假设的刚好就是最小值。
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
return arr;

}

 

3.快速排序

思路:获取数组的中间值,截取出来

   遍历数组,用数组的每一项去和中间值比较,比较的结果分别放在两个数组里面

   递归:将分隔到左右的两个数组在排序,知道数组的长度等于1

   将结果通过concat进行连接

function quickSort(array){

if(Array.isArray(array)){
if(array.length<=1){
return array;
}//递归一定要写初始值
var minIndex = Math.floor(array.length/2);//取出数组中间值的下标
var minValue = array.splice(minIndex,1)[0];//通过下标把数组的中间值截取出来
var left = [];//定义一个新数组,用来存放比中间值小的值
var right = [];//定义一个新数组,用来存放比中间值大的值
for(var i = 0;i<array.length;i++){
if(array[i]<minValue){
left.push(array[i]);
}else{
right.push(array[i]);
}
}
return quickSort(left).concat(minValue,quickSort(right));
}else{
alert("好好写");
}
}

 

转载于:https://www.cnblogs.com/sun765/p/7930762.html

你可能感兴趣的文章
十二种获取Spring的上下文环境ApplicationContext的方法
查看>>
UVA 11346 Probability 概率 (连续概率)
查看>>
linux uniq 命令
查看>>
Openssl rand命令
查看>>
HDU2825 Wireless Password 【AC自动机】【状压DP】
查看>>
BZOJ1015: [JSOI2008]星球大战starwar【并查集】【傻逼题】
查看>>
HUT-XXXX Strange display 容斥定理,线性规划
查看>>
mac修改用户名
查看>>
一道关于员工与部门查询的SQL笔试题
查看>>
Canvas基础
查看>>
[Hive - LanguageManual] Alter Table/Partition/Column
查看>>
可持久化数组
查看>>
去除IDEA报黄色/灰色的重复代码的下划波浪线
查看>>
Linux发送qq、网易邮件服务配置
查看>>
几道面试题
查看>>
【转】使用 WebGL 进行 3D 开发,第 1 部分: WebGL 简介
查看>>
js用正则表达式控制价格输入
查看>>
chromium浏览器开发系列第三篇:chromium源码目录结构
查看>>
java开发操作系统内核:由实模式进入保护模式之32位寻址
查看>>
第五讲:单例模式
查看>>