排序算法1——图解冒泡排序及其实现(三种方法,基于模板及函数指针)
排序算法2——图解简单选择排序及其实现
排序算法3——图解直接插入排序以及折半(二分)插入排序及其实现
排序算法4——图解希尔排序及其实现
排序算法5——图解堆排序及其实现
排序算法6——图解归并排序及其递归与非递归实现
排序算法7——图解快速排序(两种主元选择方法)以及CUTOFF时间测试
排序算法8——图解表排序
排序算法9——图解桶排序及其实现
排序算法10——图解基数排序(次位优先法LSD和主位优先法MSD)
排序算法——比较与总结
基本思想
通过
n-i
次关键字之间的比较,从n-i+1
个记录中选出关键字最小的记录,并和第i个记录作交换
代码和上下界
比较过程如下
这样,最多经过
n-1
次交换,就能完成排序操作
下面分析简单选择排序的时间复杂度
无论最好或最坏的情况下,其比较次数都是一样多的,
第i趟需要进行n-i
次关键字的比较,总共需要比较∑(n-i)=n(n-1)/2次,i从1到n-1
,
而对于交换次数来说,当最好的时候,不需要进行数据的交换
而当逆序的时候,交换次数为n-1
次,