JavaScript四种需要掌握的排序算法
    Thursday, 3 August 2017
    12:26
    JavaScript四种需要掌握的排序算法
    又帅又爱笑 2017-07-20 13:30
    首先先来个辅助函数swa用来交换数组的值:
    var swap = function(arr,  let temp  = arr[x];  arr[X]  = arr[y]  arr[y]  = temp;
    辅助函数
    一、冒泡排序:
    var bubbleSort = function(arr) {  for (let i = e; i < arr. length; i++) {  for (let j = e;  j < arr. length  if (arr[j] > arr[j + 1]) {  swap(arr, j, j + 1);  return arr;  i;
    冒泡排序
    这是最基本也是最简单的排序算法,也不过多介绍了。
    二、选择排序:
    var selectSort = function(arr) {  for (let i =  i < arr. length  e;  let min =  = i; j < arr. length; j++) { //  for (let j  if (arr[i) > arr[j]) {  min  if (i min) {  swap(arr, i, min);  return  arr;
    选择排序
    选择排序是一种袁地址的比较排序算法; 大致思路时候:
    先找到数据结构里面的最小值并且把它放到第一位,接着在找到第二个最小值,把它放到第二位。以此类推。
    三、插入排序:
    var insertSort = function(arr) {  for (let i = e; i < arr. length  for (let j  1; j < arr. length; j++) {  if (arr[j] < arr[i]) {  swap(arr, j);  return arr;
    插入排序
    插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度也为O(n^2)。
    四、快速排序:
    var quicksort = function(arr) {  if (arr. length 1) {  return arr;  var midlndex = Math. floor(arr. length / 2);  var midlndexVa1 = arr. I);  var left  var right =  for (var i = e; i < arr. length; i++) {  if < midlndexval) {  / splice (index, 1)  left. //  else {  right.  return quickSort(1eft) . concat(midlndexval, quicksort(right));
    快速排序
    快速排序是一种比较优越的排序算法,时间复杂度为O(nlgn);设要排序的数组是A[0]……A[N-1]首先任意选取一个数据作为关键数据k,然后将数组A中所有比它小的数都放到它前面,所有比它大的数都放到它后面,这样一趟对于这个关键数据k的位置基于固定了。然后把它前面和后面的数据按照重复以上的操作。
    本文主要参考《学习JavaScript数据结构和算法》一书。
    谢谢关注,更多代码请点击下方源码地址。

    1. - [编程语言](http://www.365yg.com/search/?keyword=%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80)
    2. - /[数据结构](http://www.365yg.com/search/?keyword=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)
    3. - /[科技](http://www.365yg.com/search/?keyword=%E7%A7%91%E6%8A%80)

    收藏
    举报
    已使用 Microsoft OneNote 2016 创建。