配列arrのk番目の大きい/小さい奇数を検索し、存在しない場合は0を返します.
1649 ワード
public class NumUtil {
/**
*
* @param args args[0] k
*/
public static void main(String[] args) {
int[] arr = {88, 0, 1, 3,5,7, 9, 2,4, 8, 10};
int k=0;
try{
k=Integer.parseInt(args[0]);
}catch (ArrayIndexOutOfBoundsException aioe){
System.out.println(" k");
System.exit(-1);
}catch (NumberFormatException nfe){
System.out.println(" k ");
System.exit(-1);
}
if(k<=0){
System.out.println(" k ");
System.exit(-1);
}
NumUtil numUtil = new NumUtil();
int number = numUtil.findKth(arr, k);
System.out.println(" "+k+" :"+number);
}
/**
* arr k , 0. (arr[i] > 0 (i>=0))
* ( , , )
* :
* public int findKth(int[] arr, int k){
*
* //
* }
* @param array
* @param k k
* @return , 0
*/
private int findKth(int[] array, int k) {
array = sort(array,true);// , k asc=false
int index = 1; //
for (int i = 0;iarray[j+1];
else //
condition=array[j]