1.一个从大到小的数组,按从小到大的顺序排序,哪种排序方法最快?(最坏情况)
(1)冒泡排序:1+2+...n-1=O(n^2);
(2)快速排序:每次partion都需要比较k-1次,才能将“第一个”数字移动到“末端”。需要进行n-1次partion才能完成排序。所以最坏情况下比较次数仍然是1+2+..+n-1=O(n^2)。
(3)插入排序:
(4)堆排序:
补充:平均情况下,这几种排序算法的比较:
(1)快速排序:平均时间复杂度为O(nlogn);最坏时间复杂度O(N^2);快速排序需要一个栈作辅助空间,用来实现递归处理左、右子文件,在最坏情况下,递归深度为n,所需栈的空间大小为O(n)数量级。
(2)冒泡排序:
时间: 2024-11-09 12:40:55