Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Algorithm 为什么这是一个快速排序的属性?_Algorithm_Sorting_Data Structures - Fatal编程技术网

Algorithm 为什么这是一个快速排序的属性?

Algorithm 为什么这是一个快速排序的属性?,algorithm,sorting,data-structures,Algorithm,Sorting,Data Structures,为什么快速排序会以相同的速度对给定的已排序项目集和反向排序项目集进行排序 为什么像堆排序、插入排序或选择排序这样的其他排序不可用?标准选择排序、堆排序和快速排序与插入排序不同 看这张表。 例如,选择排序的最佳和最坏情况在^2上都具有复杂性-每个循环运行始终经过预先确定的数组块 快速排序的速度取决于对给定数据集的分区元素的正确选择。排序顺序可能会产生影响,例如,如果划分很愚蠢,则始终会得到工件的第一个元素,否则最坏的二次情况的概率很小 如果您需要对几乎排序的数据集进行排序,请选择一些自适应排序,例

为什么快速排序会以相同的速度对给定的已排序项目集和反向排序项目集进行排序


为什么像堆排序、插入排序或选择排序这样的其他排序不可用?

标准选择排序、堆排序和快速排序与插入排序不同

看这张表。 例如,选择排序的最佳和最坏情况在^2上都具有复杂性-每个循环运行始终经过预先确定的数组块

快速排序的速度取决于对给定数据集的分区元素的正确选择。排序顺序可能会产生影响,例如,如果划分很愚蠢,则始终会得到工件的第一个元素,否则最坏的二次情况的概率很小


如果您需要对几乎排序的数据集进行排序,请选择一些自适应排序,例如,对小数据集进行自然合并排序或插入排序。

值得一读:您所说的同等速度是什么意思?等于什么?快速排序的运行时间在很大程度上取决于枢轴的选择。列出至少五种流行的方法,并思考它们对有序和反向序列上quicksort运行时的影响。对mergesort的评论。@greybeard mergesort在这两种情况下也有相同的速度,对吗?对于快速排序,它取决于pivot..@greybeard-Mergesort对已排序或反向排序的数据执行大约一半的比较,但移动次数相同。