引言 对于排序的分类,可以将排序算法分为两大类:基于比较和非比较的算法。 基于比较的排序算法可以细分为: 基于交换类:冒泡排序、快速排序 基于插入类:直接插入排序、希尔排序 基于选择类:简单选择排序、堆排序 基于归并类:归并排序 基于非比较的排序算法可以分为:桶排序、计数排序和基数排序。也有人将排序归纳为8大排序,原因是基数排序和计数排序是建立在桶排序之上或者是一种特殊的桶排序,但是计数排序和基数排序有它们各自的特征。 比较类排序 交换类 冒泡排序 简介 冒泡排序,又称起泡排序,它是一种基于交换的排序典型,也是快排思想的基础,冒泡排序是一种稳定排序算法,时间复杂度为O(n2) 主要思想 循环遍历多次每次从前往后把大元素往后调,每次确定一个最大(最小)元素,多次后达到排序序列。(或者从后向前把小元素往前调)。 具体思想为(把大元素往后调): 从第一个元素开始往后遍历,每到一个位置判断是否比后面的元素大,如果比后面元素大,那么就交换两者大小,然后继续向后,这样的话进行一轮之后就可以保证最大的那个数被交换交换到最末的位置可以确定。...