美文网首页
JavaScript基础算法之冒泡排序&快速排序

JavaScript基础算法之冒泡排序&快速排序

作者: 任建坤123 | 来源:发表于2019-07-15 04:02 被阅读0次

1,冒泡排序

原理:相邻的两个数互相比较,按照从小到大排列,进行比较时前一个数如果比后一个数大则两个数互换位置,相互比较完一轮最大的数就会到最后面,并且不再参与比较,然后再循环比较,直到比较完成。

var arr1 = [23, 43, 4543, 45, 546546, 67, 764, 45, 22, 34, 66, 88]

function pao(arr) {
  var len = arr.length;    //获取数组长度
  for (var i = 0; i < len - 1; i++) {    // 第一层循环
    for (var j = 0; j < len - 1 - i; j++) {   // 第二层循环,每确定一个数循环就减少一次,数组的长度减1再减去当前数组长度
      if (arr[j] > arr[j + 1]) {  // 相邻两数相比较 前一个数比后一个数大 两数则互换位置
        var num = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = num
      }
    }
  }
  return arr
}
console.log(pao(arr1)) // 输出结果[22, 23, 34, 43, 45, 45, 66, 67, 88, 764, 4543, 546546]

2,快速排序

原理:新建两个空数组分别为left和right,从数组中选出中间数,然后把数组中的每一项与中间数做比较,小的放入left数组,大的放入right数组。然后再用这样的方法比较新数组。直到比较完成,再把left和中间数和rignt连接为一个数组则排序完成。

var arr=[2,4,6,88,78,67,65,9,12];

function quicklySort(list){
  if(list.length <= 1 ){ //判断如果数组长度<=1,表示数组只有一个内容或没内容,直接返回本身
    return list;
  }
  var n = Math.floor(list.length / 2);//数组的中间数下标
  var num = list.splice(n,1)[0];//数组的中间数
  var left = [],right = []; //新建两个空数组用来接收比较后的数
  for(var i=0;i<list.length;i++){  开始循环
    if(list[i] < num){   如果要比较的数小于中间数则放入left 否则放入right
      left.push(list[i])
    }else{
      right.push(list[i])
    }
  }
  return quicklySort(left).concat([num],quicklySort(right))  把left,nun,right连接成一个数组
}
console.log(quicklySort(arr));//  输出结果 [2, 4, 6, 9, 12, 65, 67, 78, 88]

好了,今天就暂时到这里了,想知道更多的可以点个关注,

愚才疏学浅,故难免错漏,敬请海涵,还望不吝指出,万分感激!!!

相关文章

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • 开发者应该掌握的几种排序算法

    该篇文章主要介绍了算法基础以及几种常见的排序算法:选择排序、插入排序、冒泡排序、快速排序、堆排序。 一、算法基础 ...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 排序算法

    概述 一般排序算法(以元素比较为基础) => 快速排序、归并排序、插入排序、冒泡排序、堆排序 特殊排序算法 => ...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • JavaScript实现经典排序算法

    使用JavaScript实现的经典排序算法 util 冒泡 简单选择 直接插入 快速排序 堆排序 归并排序

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • JavaScript基础算法之冒泡排序&快速排序

    1,冒泡排序 原理:相邻的两个数互相比较,按照从小到大排列,进行比较时前一个数如果比后一个数大则两个数互换位置,相...

  • ios各种排序算法

    最近把面试需要准备的基础算法总结一下,包括冒泡排序,选择排序,快速排序,插入排序。 冒泡排序(从小到大排):始终从...

网友评论

      本文标题:JavaScript基础算法之冒泡排序&快速排序

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