gpt4 book ai didi

java - 返回数组中 K 最大的元素。 (JAVA)

转载 作者:行者123 更新时间:2023-11-30 05:56:27 25 4
gpt4 key购买 nike

public static Word[] simpleSelect(Word[] array, int k){
k= array.length;
for(int i = 0; i< k-1; i++){
for(int j = 0; j<k-i-1; j++){
if(array[j].compareTo(array[j+1]) < 0){
swap(array,j, j+1);
}
}
}
return array;
}

我创建了上面的代码,通过冒泡排序返回数组中的 K 个最大元素。我想使这个方法O(nk)。我编写了这段代码,并发现返回的数组不会打印 k 大小的数组。相反,它只是打印具有相同长度的原始数组,只是冒泡排序。

例如,如果我的原始数组是 {1,19, 7 ,26 ,9 ,85} 并且我的 k 值为 2 code>,我希望它返回 {85,26}。相反,当前无论 k 值是什么,此代码都会返回 {85,26,19,9,7,1}

我想知道我在这里做错了什么,也想知道我是否在 O(nk) 时间内编码正确。

最佳答案

  1. k在第 2 行重新分配:k = array.length;这就是为什么该方法的行为与 k 的值无关。 .
  2. 至于复杂性 bubble sort平均复杂度为 O(n^2),必须对其进行调整以满足您的 O(nk) 要求。

关于java - 返回数组中 K 最大的元素。 (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53086068/

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