js 面试算法--排序算法

1.冒泡排序算法

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻的元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


冒泡排序


2.快速排序(分治法)

选择数组中的一个数作为基准元素(pivot),将大于基准数的放大左侧,小于基准数的放到基准数的右边。

快排的核心是找出一个基准元素,把数组中比该元素小的放到左边数组,比该元素大的放到右边数组,如果左边数组和右边数组分别有序,那么leftArray+midItem+rightArray就是我们要的排序结果了。要使得左右数组有序,只需要对它们分别调用快排函数就可以了。递归调用需要一个出口,当数组长度<=1的时候,就是递归出口。

快速排序

一次排序下来以后,基准数左面的元素都小于该基准数,右面的数都大于该基准数。

然后再对左右两侧递归调用算法。


3.二路归并

1.将一个数组一分为二,

2.接着将分成的数组继续一分为二,知道长度为1,

3.当递归到了尽头,向上回溯,对于两个有序的数组,将它们合并成一个有序数组,从而完成整个归并排序。


二路归并
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,215评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,742评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,271评论 0 2
  • - 钱我自己赚 你给我爱情 给我关心 对我好 让我幸福 好不好 .... Mai年少时认为 男生养女生是应该的 至...
    Slow_living阅读 543评论 0 0
  • 2017年7月4日,华北水利水电大学微爱暖郑州小队前往经五路30号开展助残之行。残疾人是弱势群体,是需要人们关注和...
    blood2333阅读 139评论 0 0