排序算法---基于交换相邻元素的简单排序算法

逆序

成员为数的数组的一个逆序(inversion)即具有行至i < j 但 a[i] > a[j] 的序偶(odered pair) (a[i], a[j])。

排序

初始数组的逆序,是基于交换相邻元素的排序的交换次数。
因为交换两个逆序的相邻元素恰好消除一个逆序,而一个排过序的数组没有逆序。

定理

假设不存在重复元素:

定理1

N 个互异元素的数组的平均逆序数是N(N-1)/4

定理 2

通过交换相邻元素进行排序的任何算法平均都需要Ω(N2)时间。

基于交换相邻元素的排序算法

这里交换相邻元素的排序算法指每次交换只消除一个逆序的排序算法,如插入排序、冒泡排序、选择排序等

参考文献

【1】Weiss M A. Data structures & algorithm analysis in C++[M]. Pearson Education, 2012.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。