美文网首页
js的几种排序

js的几种排序

作者: liudai123 | 来源:发表于2017-11-21 17:50 被阅读16次
 //快速排序

function quickSort(a){
      if(a.length<=1)//边界条件判断
            return a;
      var midLength = Math.floor(a.length/2);
      var midValue = a.splice(midLength,1);
      var left = [];
      var right = [];
      for(var i = 0; i<a.length; i++){
           if(a[i] < midValue){
                  left.push(a[i]);
           }else{
                  right.push(a[i]);
           }
      }
      return quickSort(left).concat(midValue,quickSort(right));
}
console.log(quickSort([1,3,5,2,4,7,9,6,8]));

//冒泡排序

function bubbleSort(a) {
      var length = a.length;
      var sortArray;
      for(var i = 0; i<length-1; i++){
             for(var j = 0; j<length-1; j++){
                     if(a[j]>a[j+1]){
                           sortArray = a[j];
                           a[j] = a[j+1];
                           a[j+1] = sortArray;
                     }
             }
      }
      return a;
}
console.log(bubbleSort([1,3,5,2,4,7,9,6,8]));

//插入排序

function insertSort(a) {
      var length = a.length;
      var sortArray;
      for(var i = 1; i < length; i++) {
             for(var j = 0; j < i; j++){
                  if(a[i] < a[j]){
                        sortArray = a[i];
                        a[i] = a[j];
                        a[j] = sortArray;
                  }
             }
      }
      return a;
}
console.log(insertSort([1,3,5,2,4,7,9,6,8]));

//选择排序

function selectSort(a){
      for(var i = 0; i < a.length; i++){
              var min = a[i];
              var k = i;
              for(var j = i+1; j<a.length; j++){
                      if(min > a[j]){
                           min = a[j];
                           k = j;
                      }
              }
              a[k] = a[i];
              a[i] = min;    
      }
      return a;
}
console.log(selectSort([1,3,5,2,4,7,9,6,8]));

相关文章

  • js的几种排序

  • JavaScript 实现多种排序算法

    本章将介绍 JavaScript 如何实现排序,几种排序算法介绍如下图: 准备工具函数 util.js 备用: 借...

  • js几种排序方式

    1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.归并排序 6.快速排序

  • js实现几种排序算法

    1. 冒泡排序 冒泡为稳定排序:辅助空间: O(1)平均复杂度:n^2, 最好:n,最坏:n^2 2. 直接插入排...

  • 【JS算法】几种排序算法

    冒泡排序 从第一个人开始,每个人和右边人比较,如果你比他高,就交换位置,否则就不动。这是简单粗暴的解发,时间复杂度...

  • JS几种常见的数组排序

    数组这个小哥。无论实在哪一门语言里面我们都能看见他的身影,操作数组的方法,每门语言都不一样,但是最终的效果都是一样...

  • js几种常见的排序算法

    冒泡排序: 原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放...

  • 【js】数组常见的几种排序...

    js常见的排序方式有选择排序、插入排序、冒泡排序、快速排序。 选择排序,应该是一种不稳定的排序方式,怎么个不稳定法...

  • JavaScript:经典的十大排序小白篇

    某次二面时,面试官问起Js排序问题,吾绞尽脑汁回答了几种,深感算法有很大的问题,所以总计一下! 排序算法说明 (1...

  • JS实现排序算法

    总结下用js实现排序的几种普遍方法: 1. 冒泡排序 原理: 依次比较相邻的两个元素,如果后一个小于前一个,则交换...

网友评论

      本文标题:js的几种排序

      本文链接:https://www.haomeiwen.com/subject/wriwvxtx.html