码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 排序学习

时间:2016-10-18 18:35:36      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

  冒泡排序

  选择排序

  插入排序

  对于好久都不清楚的排序今天理了一下,包括冒泡排序、选择排序、插入排序,写完这个再看看和快速排序的区别。感觉大学学的都还给老师了。

----冒泡

/*
  现在有 数组 arr=[4,9,7,1,3]
  相邻值之间进行对比,前者比后者大,则进行互换,每一次都会把最大的放到最后面
   4 | 9 | 7 | 1 | 3
   第一轮
    4 | 7 | 1| 3 | 9
   第二轮
   4 | 1 | 3 | 7 | 9
   第三轮
   1 | 3 | 4 | 7 | 9
   第四轮
   1 | 3 | 4 | 7 | 9
*

冒泡排序的具体代码

var arr=[4,9,7,1,3];
    maopao(arr);
    function maopao(arr){
        for(var i=0;i<arr.length-1;i++){ //循环次数是length-1
            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;
                }
            }
        }
        console.log(‘冒泡排序‘+arr);
    }

----选择排序

/*
     现在有 数组 arr=[4,9,7,1,3]
     假设 i下表对应的值是最小值,然后,分别和数组中的每一个值进行对比
     4 | 9 | 7 | 1 | 3
     第一轮
     1 | 7 | 4| 3 | 9
     第二轮
     1 | 3 | 7 | 4 | 9
     第三轮
     1 | 3 | 4 | 7 | 9
     第四轮
     1 | 3 | 4 | 7 | 9
     */
var arr=[4,9,7,1,3];
    xuanzepaixun(arr);
    function xuanzepaixun(arr){
        for(var i=0;i<arr.length-1;i++){
            for(var j=i+1;j<arr.length;j++){
                var min=i;  //假设下标为i的值是最小值
                if(arr[min]>arr[j]){ //分别和数组中的值依次进行对比
                    var temp=arr[j];
                    arr[j]=arr[min];
                    arr[min]=temp;
                }
            }
        }
        console.log(‘选择排序‘+arr)
    }

---插入排序

/*
     现在有 数组 arr=[4,9,7,1,3]
     把下标为i的值分别与下标i前面的值进行对比进行从小到大排序
     4 | 9 | 7 | 1 | 3
     第一轮
     4 | 9 | 7 | 1 | 3
     第二轮
     4 | 7 | 9 | 1 | 3
     第三轮
     1 | 4 | 7 | 9 | 3
     第四轮
     1 | 3 | 4 | 7 | 9
     */

    var arr=[4,9,7,1,3];
    charupaixu(arr);
    function charupaixu(arr){
       for(var i=1;i<arr.length;i++){
           var num=arr[i];
           var j=i;
           while(arr[j-1]>num){
               arr[j]=arr[j-1];
               --j;
           }
           arr[j]=num;
       }
       console.log(arr);
    }

 

---小结

  冒泡、选择、插入排序,最大的不同就是数据不同数据之间对比方式不同,结果都一样。

 

JavaScript 排序学习

标签:

原文地址:http://www.cnblogs.com/sisiliu/p/5974071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!