c++请指出冒泡,选择,插入,快速,基数排列所有的最好情况最坏情况。

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:30:48
如题

冒泡排序最好是正序情况下,n-1次比较,不需要移动记录,最坏逆序n(n-1)/2次比较,O(n^2)次移动;
选择排序,最好移动次数为0,最大为3(n-1),无论初始排序如何,比较次数均为n(n-1)/2;
直接插入排序最好情况是非递减有序(正序),这是比较次数为n-1,不需要移动,最坏的情况为逆序比较次数为(n+2)(n-1)/2,记录移动次数达到(n+4)(n-1)/2;
快速排序若关键字基本有序或者关键字有序快速排序蜕化为冒泡排序,最坏为O(n^2)。平均性能为O(nlogn);
基数排序时间复杂度O(d*n),最坏O(d(n+rd))