Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以Pivot作为数组中最后一个元素的快速排序分析_Java_Arrays_Big O_Quicksort - Fatal编程技术网

Java 以Pivot作为数组中最后一个元素的快速排序分析

Java 以Pivot作为数组中最后一个元素的快速排序分析,java,arrays,big-o,quicksort,Java,Arrays,Big O,Quicksort,我想知道当您使用快速排序时,这个数组的大O是什么: 6 8 7 5 9 4 4是我的轴心元素 我原以为这是复杂度为O(nlogn)的最佳情况,但我不是100%确定。快速排序的大O复杂度是二次的(O(n^2))。这意味着对于每一个可能的输入,它至少会执行这么快(或者慢,如果你愿意的话) 正如评论中提到的,Big-O处理的是理论上最坏的情况,而不是特定的输入。对于特定输入,可以计算绝对步数 另一方面,quicksort(曾经?)非常流行,并不是因为它具有良好的Big-O性能,而是因为它在中等大小

我想知道当您使用快速排序时,这个数组的大O是什么:

6 8 7 5 9 4
4
是我的轴心元素


我原以为这是复杂度为O(nlogn)的最佳情况,但我不是100%确定。

快速排序的大O复杂度是二次的(
O(n^2)
)。这意味着对于每一个可能的输入,它至少会执行这么快(或者慢,如果你愿意的话)

正如评论中提到的,Big-O处理的是理论上最坏的情况,而不是特定的输入。对于特定输入,可以计算绝对步数



另一方面,quicksort(曾经?)非常流行,并不是因为它具有良好的Big-O性能,而是因为它在中等大小的输入上具有良好的通常情况下的性能——虽然有一些算法在
O(n log n)
中执行(这也是理论上的限制——无法做得更好),但它们在实际使用中往往较慢,因为它们具有更大的常数(即,渐近更好的性能仅在大输入上表现出来)。

Big-O并不真正适用于特定的输入或输入集。说“数组的Big-O
6 8 7 5 9 4
是O(n log n)”是没有用的。它是不同的抽象级别。Big-O不适用于特定对象。