gpt4 book ai didi

java - 帮助解决算法

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

我想返回字符比较的次数。在 while() 循环中,我比较字符的索引并更新计数器。我的问题是,这样做是否正确,或者我必须比较角色本身。我认为比较索引和更新计数器与比较字符本身是一样的。有什么想法吗?

需要帮助。

算法代码如下。

    // Sort an array of strings using quick sort
// Always pivot on the first element
// Return the number of CHARACTER comparisons

public int stringQuickSort(ComparableByte[][] strings) {
Counter nCompares = new Counter();
sortStringQuickSort(strings, 0, strings.length-1, 0, nCompares, false);
return nCompares.value;
}

public void sortStringQuickSort(ComparableByte[][] strings, int lo, int hi, int d, Counter nCompares, boolean switchToOtherAlgorithm){
if(!switchToOtherAlgorithm){
if(hi <= lo)
return;
}else if(hi <= lo+10){

stringInsertionSort(strings);
return;
}
int lt = lo, gt = hi;
int v = characterAt(ComparableByte.toString(strings[lo]), d);
int i = lo+1;

while(i <= gt){
int t = characterAt(ComparableByte.toString(strings[i]), d);
nCompares.value++;
if (t < v){
swapTwoComparableByteElements(strings, lt++, i++);
nCompares.value++;
}
else if(t > v){
swapTwoComparableByteElements(strings, i, gt--);
}
else
i++;
}

sortStringQuickSort(strings, lo, lt-1, d, nCompares, switchToOtherAlgorithm);
if(v >= 0){
sortStringQuickSort(strings, lt, gt, d+1, nCompares, switchToOtherAlgorithm);
}
sortStringQuickSort(strings, gt+1, hi, d, nCompares, switchToOtherAlgorithm);
}

谢谢你的帮助

最佳答案

通常这些东西用于提供算法所需的比较经验估计,以研究预期行为是否正确。

所以,是的,如果您注意计算正确的操作,那么您计算什么并不重要。只要您在程序需要计算 < > <= >= = 时实际计数,您就不会关心它们是否是索引字符。与输入和当前实现相关的操作。

关于java - 帮助解决算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063529/

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