• 排序———冒泡排序


    一、冒泡排序

           这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。

          它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

    冒泡排序算法的原理如下:

    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
     var arr=[5,6,8,3,5,12,4];
        var bigarr;
        var j;
        for(var i=0;i<arr.length;i++){           //外循环遍历数组的每一项
            for(var j=i+1;j<arr.length;j++){     //内循环则用于比较元素
                if(arr[i]>arr[j]){
                    bigarr=arr[i];
                    arr[i]=arr[j];
                    arr[j]=bigarr;
                }
            }
        }
        console.log(arr);     //[3, 4, 5, 5, 6, 8, 12]
    

     二、选择排序

    是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。(从小到大);

    步骤如下:

    1.从数组的开头起,将第一个元素和其他所有元素都进行一次比较,选择出最小的元素放在数组的第一个位置。

    2.然后再从第二个元素开始,将第二个元素和除第一个之外的所有元素进行一次比较,选择出最小的元素放在数组的第二个位置。

    3.对后面的第三,第四……的元素分别重复上面的步骤,知道所有的数据完成排序。

     var arr=[5,6,8,3,5,12,4];
    var minindex; //定义一个变量,保存最小值 for(var i=0;i<arr.length;i++){ minindex=i; for(var j=i+1;j<arr.length;j++){ //将第一个元素和其他所有元素都进行一次比较,发现小的就保存在minnindex,,知道j循环完,,把minindex和i的值调换; if(arr[j]<arr[minindex]){ //注意这儿是minindex,不能是i minindex=j; } } if(minindex!=i){ var temp=arr[i] arr[i]=arr[minindex]; arr[minindex]=temp; } }
  • 相关阅读:
    在Linux服务器上添加ip白名单允许ssh登录访问
    crontab + shell脚本实现文件重命名
    mysql数据库提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    附加题2:中文编程的发展角度
    附加题1:实体店的未来存在形式
    第八周作业
    第七周作业
    第六周作业
    第五周作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/yongyang/p/9224627.html
Copyright © 2020-2023  润新知