gpt4 book ai didi

java - 索引排序。发生了一些非常奇怪的事情

转载 作者:行者123 更新时间:2023-12-01 12:30:47 25 4
gpt4 key购买 nike

       public int[] indexSort(){
int[] sortedarr = new int[max];

for(int i=0;i<max;i++){
int key=0;
int duplicates = 0;
for(int j=0;j<max;j++){
if(arr[i]>arr[j]) key++;
else if(arr[i]==arr[j]) duplicates++;

}
while(duplicates>0&&key<max){


sortedarr[key] = arr[i];
key++;
duplicates--;
}
}
return sortedarr; }

while 循环是如何工作的?即使没有重复项(duplicates=0),while 循环仍然会执行。

我的心很困惑。索引排序是否应该按 O(n^3) 运行?

最佳答案

总有一个“重复”:当i == j时。

您可能应该在 i+1 处开始内部循环:

for(int i=0;i<max;i++){
int key=0;
int duplicates = 0;
for(int j=i+1;j<max;j++){

关于java - 索引排序。发生了一些非常奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25933725/

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