冒泡与排序

冒泡:

复制代码
 // 数组的排序:
    // sort()

    // 冒泡排序:两两比较,大的放后面
    // 0-1,1-2,2-3,3-4  0~length-1-0
    // 0-1,1-2,2-3      0~length-1-1
    // 0-1,1-2          0~length-1-2
    // 0-1              0~length-1-3
    var arr = [45,3,78,2,9]; //制定数组
    function bubble(a){
        for(var i=0;i<a.length-1;i++){      //遍历数组
            var s;
            for(var j=0;j<a.length-i-1;j++){  //需要比较的次数
                if(a[j]>a[j+1]){
                    s=a[j+1]
                    a[j+1]=a[j];
                    a[j]=s
                }
            }
        }
        return a;
    }
    console.log(bubble(arr))
复制代码

选择:

复制代码
 1   // 选择排序:取第一位和后面所有做比较,拿到最小的,放在第一位
 2     // 1.确定执行次数,和比较方式
 3     // length-1
 4     // 0-1,0-2,0-3,0-4     0~length-1
 5     // 1-2,1-3,1-4         1~length-1
 6     // 2-3,2-4             2~length-1
 7     // 3-4                 3~length-1
 8     var arr = [45,3,78,2,9];//制定一个数组
 9     for(var i=0;i<arr.length;i++){  //遍历所有数组
10         var min=arr[i];           //假定最小值为a[i]
11         var minIndex=i;             //最小值的索引是i
12         for(var j=i+1;j<arr.length;j++){  //每行需要排序的次数 。
13             if(min>arr[j]){   //假定的最小值逐个相比
14                 min=arr[j];  //真实的最小值 。相当于a[i]与a[i+1]比
15                 minIndex=j; //真实的最小值索引
16             }
17         }
18         arr[minIndex]=arr[i]   //因为要发生交换,将假定的最小值放到真实的最小值位置。//之所以要放在循环外面,是要等一个都比完了。
19         arr[i]=min;    //真实的最小值放到假定的最小值位置,i也是从头开始的所以最小的肯定在最前面
20 //上面两行代码表示两个数字位置发生了交换
21     }
22     console.log(arr)
复制代码

 

posted @   菜鸟小何  阅读(215)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示