[英]find the kth smallest number in java
以下是在數組中找到第k個最小數字的Java代碼。 此代碼適用於基本版本,不使用數據透視索引。
class Func {
int kthSmallest(int arr[], int smallestIndex, int size){
int smallest = arr[0];
int removeLocation=0;
for(int i=0; i<size; i++){
if(arr[i] < smallest){
smallest = arr[i];
removeLocation = i;
}
}
for(int i=removeLocation; i<size; i++){
arr[i] = arr[i+1];
}
if(smallestIndex == 1) {
return smallest;
} else return kthSmallest(arr, smallestIndex-1, size-1);
}
}
public class Test {
public static void main(String[] args){
Func test = new Func();
int number = test.kthSmallest(new int[]{3,1,2,4,5}, 2, 5);
System.out.println(number);
}
}
結果是
線程“主”中的異常java.lang.ArrayIndexOutOfBoundsException:5
我找不到該錯誤的出處。
在第二個for循環中,您可以按以下方式通過i + 1修改來訪問更多范圍
for(int i=removeLocation; i<size-1; i++){
arr[i] = arr[i+1];
}
2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.