0
我想了解如何在尝试在数组中找到重复键时选择枢轴。我见过的大多数例子总是选择第一个元素作为支点,假装这个元素在数组中重复。如果情况并非如此呢?如何正确选择枢轴?为重复键算法选择枢轴
假设数组a[lo...hi]
和v分区元素v = a[lo]
。我们也有2个指标GT和LT其中
a[lo ... lt]
少比伏a[lt ... gt]
是等于Va[gt ... hi]
是更大的比伏
这样的想法是从扫描从左到右,直到i> gt:
(a[i] < v)
:swap(a[i], a[lt]), i++, lt++
(a[i] > v) : swap(a[i], a[gt]); gt--
(a[i] == v): i++
的想法是非常相似的快速排序划分,我想知道如何正确地选择在这种情况下支点。
我不认为'重复密钥算法'是众所周知的,可以假设每个人都知道它是什么。你应该详细说明。 – Dukeling
好的,我会更新我的问题 – Dimitri