import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TwoFenOrder{
public int[] inputInteger(){
System.out.println("please input Integer......");
String temp=null;
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
temp = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
final int count = temp.length();
int[] intArray = new int[count];
for(int i=0 ; i<count ;i++){
intArray[i] = Integer.valueOf(temp.substring(i,i+1));
}
//二分法要求数组必须是有序的。(使用递归)
int tmpInt=0;
for(int i=0 ;i <count ; i++){
for(int j=i;j<count;j++){
if(intArray[i] > intArray[j]){
tmpInt = intArray[j];
intArray[j] = intArray[i];
intArray[i] = tmpInt;
}
}
}
//输出排列之后的数组
for(int i : intArray){
System.out.print(i + " ");
}
return intArray;
}
public void twoOrder(int[] intArray){
System.out.println("please input Integer findValue !!!!!!!!");
String temp = null;
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
temp = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
final int count =intArray.length;
//要寻找的值
int findValue = Integer.valueOf(temp);
//起始start索引
int start = 0;
//终了end索引
int end = count-1;
//比较索引
int index = (start + end)/2;
//二分法查找次数
int sum = 0;
while(true){
if(intArray[index] < findValue){
start = index;
index = (start + end)/2;
sum++;
}else if(intArray[index] > findValue){
end = index;
index = (start + end)/2;
sum++;
}else if(intArray[index] == findValue){
System.out.println("使用二分法查找的次数是:" + sum);
break;
}//如果输入没有怎么办那?
}
}
public static void main(String[] args){
TwoFenOrder twoFenOrder = new TwoFenOrder();
int[] intArray = twoFenOrder.inputInteger();
twoFenOrder.twoOrder(intArray);
}
}