美文网首页
js 面试算法--排序算法

js 面试算法--排序算法

作者: 梦见君笑 | 来源:发表于2017-03-08 20:26 被阅读69次

    1.冒泡排序算法

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

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

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

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

    冒泡排序

    2.快速排序(分治法)

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

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

    快速排序

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

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

    3.二路归并

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

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

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

    二路归并

    相关文章

      网友评论

          本文标题:js 面试算法--排序算法

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