这里我以Android为例;
首先需要对一个数组排序;
private Button btn; private EditText et1; private EditText et2; private int count; private int[] val = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.button1); et1 = (EditText) findViewById(R.id.editText1); et2 = (EditText) findViewById(R.id.editText2); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int value = Integer.parseInt(et2.getText().toString().trim()); int index = getIndex(value); if (index == -1) et1.setText("index=-1,未找到需要的数字" + ",共循环" + count + "次"); else { et1.setText("index=" + index + ",共循环" + count + "次"); } } }); } private int getIndex(int value) { count = 0; int start = 0; int end = val.length - 1; int index = -1; while (start <= end) { index = start + Math.round((end - start) / 2); count++; if (val[index] == value) return index; else if (val[index] < value) start = index + 1; else end = index - 1; } return -1; }
代码很简单。动手试试就知道了。