
十大排序算法思路汇总
在面试的过程中经常会遇到手写排序算法,所以本文就简单总结一下。不对算法的细节做介绍,只做一个概括性的描述。

交换类:通过元素之间的两两交换来实现排序
插入类:将数分为2部分,依次将无序的数插入到有序的数列中
选择类:从待排序数列中找到最小值或者最大值元素,放到已拍好序的序列后面
计数排序和基数排序可以认为是桶排序的一种特殊实现,都不是通过元素之间的比较来实现排序的
冒泡排序
冒泡排序,从头开始,依次比较数组中相邻的2个元素,如果后面的数比前面的数大,则交换2个数,否则不交换。每进行一轮比较,都会把数组中最大的元素放到最后面。
如下图,一轮比较的过程如下