private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.button);
et = (EditText) findViewById(R.id.dt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int i = Integer.parseInt(et.getText().toString());
int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
if(search(arr,i)==-1)
{
Toast.makeText(MainActivity.this,"没有该元素",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(MainActivity.this,"该元素下标为"+search(arr,i),Toast.LENGTH_SHORT).show();
}
}
});
}
折半查询方法
public static int search(int[] arr, int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}