gpt4 book ai didi

algorithm - 以中间元素为轴心的快速排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:15 24 4
gpt4 key购买 nike

我正在尝试搜索有关快速排序如何将中间元素作为枢轴的任何解释,但我找不到任何解释。我想要寻找的是关于如何逐步对数字进行排序的任何演示,因为它真的很难理解算法。谢谢。

最佳答案

垂直条围绕枢轴:

 61 11 93 74 75 21 12|55|81 19 14 86 19 79 23 44
44 11 23|19|14 21 12 19
19|11|12 14
11
19|12|14
12
|19|14
14
19
19|21|23 44
|19|21
19
21
|23|44
23
44
81 55 75|86|74 79 93 61
81 55|75|61 74 79
74|55|61
55
|74|61
61
74
75|81|79
|75|79
75
79
81
|93|86
86
93
11 12 14 19 19 21 23 44 55 61 74 75 79 81 86 93

基于 Hoare 分区方案的这种变体:

void QuickSort(int a[], int lo, int hi) {
int i, j, p;
if (lo >= hi)
return;
i = lo - 1;
j = hi + 1;
p = a[(lo + hi)/2];
while (1)
{
while (a[++i] < p) ;
while (a[--j] > p) ;
if (i >= j)
break;
swap(a+i, a+j);
}
QuickSort(a, lo, j);
QuickSort(a, j + 1, hi);
}

请注意,在分割步骤之后,枢轴可以在左侧或右侧结束。

关于algorithm - 以中间元素为轴心的快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50723972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com