zoukankan      html  css  js  c++  java
  • 排序———冒泡排序

    一、冒泡排序

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

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

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

    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; } }
  • 相关阅读:
    python常用模块②
    python常用模块①
    面向对象相关部分双下划线方法补充
    面向对象进阶 上
    面向对象初识④
    面向对象初识③
    综合架构-负载均衡
    wecent 搭建
    综合架构--存储
    综合架构--备份
  • 原文地址:https://www.cnblogs.com/yongyang/p/9224627.html
Copyright © 2011-2022 走看看