编码实现求topk
## 一、暴力求解
```java
public static void topK(int[] arr, int k) {
// 暴力求解,时间复杂度O(n*k),空间复杂度O(1)
for (int i = 0; i < k; i++) {
int maxIndex = i; // 假设最大值下标为i
for (int j = i + 1; j < arr.length; j++) { // 遍历剩余元素,找出最大值的下标
if (arr[maxIndex] < arr[j]) {
maxIndex = j; // 更新最大值的下标
}
}
swap(arr, maxIndex, i); // 将最大值交换到数组前面的位置(即i号位置)
}
System.out.println("top " + k + " : "); // 输出topK元素
for (int i = 0; i < k; ++i) {
System.out.print(arr[i] + " ");
}
}
```
AI智能问答网免责声明:
以上内容除特别注明外均来源于网友提问、ChatGPT回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
若以上展示有冒犯或侵害到您,敬请联系我们进行删除处理,谢谢!