美文网首页
排序算法

排序算法

作者: darkTi | 来源:发表于2020-07-19 18:34 被阅读0次

一、快速排序

思想

  1. 在数组中,选择一个元素作为基准;
  2. 所有小于基准的元素都移到基准的左边,大于基准的元素移到右边,此时基准元素所处的位置就是它的最终位置;
  3. 之后对基准左边和右边的两块区域,分别不断重复1和2的步骤,直到剩下一个元素位置;
    代码

    function sort(arr,left,right) {
        var standard = arr[left];
        var i=left;
        var j=right;
        if(left>=right)return
        while(i<j){
            while(arr[j]>=standard&&j>i)j--;
            while (arr[i]<=standard&&i<j)i++;
            if(i<j){
                [arr[i],arr[j]] = [arr[j],arr[i]]
            }
        }
        arr[left] = arr[j];
        arr[j]=standard;
        sort(arr,left,i-1);
        sort(arr,i+1,right);
        return arr;
    }   
var arr=[3,88,44,38,55,12];
console.log(sort(arr,0,arr.length-1));

二、冒泡排序

思想

  1. 对每一对相邻的元素进行比较,把较小的元素放在左边,较大的放在右边,从开始的第一对进行到数组最后一对,这样就会把最大的元素放在最后;
  2. 每一次循环都只会确定最大的那个元素,需要进行多次循环;

代码

   function BubbleSort(arr) {
        for(var i=0;i<arr.length;i++){
            for(var j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    [arr[j],arr[j+1]] = [arr[j+1],arr[j]]
                }
            }
        }
        return arr
    }
var arr=[3,88,44,38,55,12]
console.log(BubbleSort(arr))

三、选择排序

思想

  1. 在未排序的数组中,每次找到最小(大)的元素,把它放到起始位置;
  2. 在剩余的未排序的数组中,继续找最小的元素,把它放到这次数组的起始位置,直到只剩一个元素;

代码

function quickSort(arr) {
    for(var i=0;i<arr.length;i++){
        for(var j=i+1;j<arr.length;j++){
            if(arr[j]<arr[i]){
              [arr[i],arr[j]] = [arr[j],arr[i]]
            }
        }
    }
      return arr
    }
var arr=[3,88,44,38,55,12]
console.log(quickSort(arr))

相关文章

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 经典排序算法总结

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

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

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

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

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 线性排序

    桶排序、计数排序、基数排序 一、线性排序算法介绍 1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

网友评论

      本文标题:排序算法

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