代码部分:
int sy(int[] arra,Integer temp) {
// 第一步:将数组排序(冒泡排序)
for (int i = 0; i < arra.length-1; i++) {
for (int j = 0; j < arra.length-1-i; j++) {
if(arra[j] > arra[j+1]) {
int index = arra[j];
arra[j] = arra[j+1];
arra[j+1] = index;
}
}
}
// 定义左索引
int begin = 0;
// 定义右索引
int end = arra.length-1;
// 定义循环
while(begin <= end) {
// 定义查询中间索引
int mid = (end + begin)/2;
// 如果数组中间索引定义的值和要查询的值相等,则直接返回中间索引
if(arra[mid] == temp) {
return mid;
}
// 如果数组中间索引定义的值大于要查询的值时,则证明中间索引右边的所有值都大于要查询的值
// 所以修改右索引位置为中间索引-1
else if(arra[mid] > temp) {
end = mid - 1;
}
// 如果数组中间索引定义的值小于要查询的值时,则证明中间索引左边的所有值都小于要查询的值
// 所以修改左索引位置为中间索引+1
else if(arra[mid] < temp) {
begin = mid + 1;
}
}
return -1;
}
测试与结果: