JavaScript 排序学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 排序学习相关的知识,希望对你有一定的参考价值。

  冒泡排序

  选择排序

  插入排序

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

----冒泡

/*
  现在有 数组 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 排序学习的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript算法(归并排序与快速排序)

ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

JavaScript算法(冒泡排序选择排序与插入排序)

30秒就能看懂的JavaScript 代码片段