博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript之排序算法
阅读量:3930 次
发布时间:2019-05-23

本文共 1834 字,大约阅读时间需要 6 分钟。

目录


一、冒泡排序

  介绍: 它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻

两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的

元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素

之前。重复此操作,直到整个数列都有序为止!

案例:

function bubble(array) {    var len = array.length;    var temp;    for(var i=0; i
array[j]) { temp = array[j]; array[j] = array[j-1]; array[j-1] = temp; } } } return array;}


二、选择排序

介绍:未排序序列中找到最小元素,放入存储有序序列的数组中,同时从未排序序列中

删除这个元素;继续从未排序序列中找到最小元素,然后放入有序序列的数组中,直到

未排序序列为空,返回有序序列。

案例:

function select(arr) {        var len = arr.length;        for(var i=0;i
arr[j]){ min = j; } } var temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; } } var arr = [1,3,4,2]; select(arr); console.log(arr); // [1,2,3,4]


三、插入排序

介绍:在一个数组中,假定第一个就是最小值,然后取第二个值与第一个值比较产排序后

的序列,然后再取第三个值与排序后的序列进行比较插入到对应的位置,依次类推。

 

function insert(array) {        var len = array.length;        var i,j;        for( i = 1; i < len; i ++ ) {             //从1开始,因为array[0]默认就是已经排序好的            j = i;            //保存未排序序列            var value = array[j];            while(array[j-1] > value){                array[j] = array[j-1];                j --;                if (j === 0) {                    break;                }            }            //j就是要插入的位置            array[j] = value;        }        return array;    }


四、快速排序

介绍:从序列中挑出一个元素,称为基准元素,所有比基准小的元素排在基准前面,所有

比基准大的元素排在基准后面。把重新得到的序列再通过上面的方法排序,当序列长度为1或者0时,结束递归。

function  quickSort (array) {        var len = array.length;        //数组长度为1,则本身就是有序的        if (len <= 1) {            return array;        }        var pivot = array[0];//选第一个元素为基准         var leftArr = [];    //存储比基准小的元素        var rightArr = [];   //存储比基准答得元素        for(var i=1; i

 

 

 

 

 

      --------------------------------本文完--------------------------------

 

 

 

 

 

转载地址:http://fwxgn.baihongyu.com/

你可能感兴趣的文章
研发主管的烦恼:周一早晨延迟的项目会议
查看>>
研发主管的烦恼:难以执行的绩效考核
查看>>
用ASK模型剖析马谡失街亭的必然性
查看>>
研发主管的烦恼:选择KPI还是选择OKR?
查看>>
PMP笔记:项目管理任务
查看>>
PMP笔记:挣值管理
查看>>
PMP笔记:十大知识领域、五大过程组、47个过程
查看>>
PMP笔记:质量管理中的帕累托图
查看>>
PMP笔记:Line Manager与Functional Manager
查看>>
PMP笔记:启动过程组检查事项
查看>>
PMP笔记:规划过程组检查事项
查看>>
PMP笔记:执行过程组检查事项
查看>>
PMP笔记:监控过程组检查事项
查看>>
PMP笔记:收尾过程组检查事项
查看>>
ORID焦点呈现法(Focused Conversation Method)
查看>>
赢得面试 — 天助自助者
查看>>
赢得面试——抓住“主动”提问的机会获得加分
查看>>
5 Tips for Instant Interview Success
查看>>
与“雾霾”相关的英语表达
查看>>
职场中14个有趣的问题
查看>>