1.冒泡排序算法
冒泡排序1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻的元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2.快速排序(分治法)
选择数组中的一个数作为基准元素(pivot),将大于基准数的放大左侧,小于基准数的放到基准数的右边。
快速排序快排的核心是找出一个基准元素,把数组中比该元素小的放到左边数组,比该元素大的放到右边数组,如果左边数组和右边数组分别有序,那么leftArray+midItem+rightArray就是我们要的排序结果了。要使得左右数组有序,只需要对它们分别调用快排函数就可以了。递归调用需要一个出口,当数组长度<=1的时候,就是递归出口。
一次排序下来以后,基准数左面的元素都小于该基准数,右面的数都大于该基准数。
然后再对左右两侧递归调用算法。
3.二路归并
1.将一个数组一分为二,
2.接着将分成的数组继续一分为二,知道长度为1,
3.当递归到了尽头,向上回溯,对于两个有序的数组,将它们合并成一个有序数组,从而完成整个归并排序。
二路归并
网友评论