- public static boolean BinarySearch(int keyValue)
- {
- int left; // 左边界变量
- int right; // 右边界变量
- int middle; // 中位数变量
- System.out.println("数据长度:"+len);
- left = 0;
- right = len - 1;
- while (left <= right)
- {
- //由于源数据不是顺序的,需先进行排序
- int temp;
- for(int i=0;i<data.length;++i)
- {
- for(int j=0;j<data.length-i-1;++j)
- {
- if(data[j]>data[j+1])
- {
- temp = data[j];
- data[j] = data[j+1];
- data[j+1] = temp;
- }
- }
- }
- middle = (left + right) / 2;
- // 欲查找值较小
- if (keyValue < data[middle])
- {
- right = middle - 1; // 查找前半段
- }
- // 欲查找值较大
- else if (keyValue > data[middle])
- {
- left = middle + 1; // 查找后半段
- }
- // 查找到数据
- else if (keyValue == data[middle])
- {
- System.out.println("data[" + middle + "] = " + data[middle]);
- return true;
- }
- counter++;
- }
- return false;
- } }
复制代码 |
|