«
99~100. 1道 二分查找法习题
点亮灯 发布于
阅读:59
C++
#include<iostream>
using namespace std;
int main() {
int a[9]{ 1, 2, 3, 4, 5, 6, 37, 8, 100 };
int b;
int shur; //输入
int zhueida,zhueixiao;
int zhongjian;
int n = sizeof a / sizeof a[1];
int z = -1;
/*for (int i = 0; i < n; i++) {
cin >> a[i];
}*/
for (int i = 1; i < n; i++) {
for (int j = i - 1; j >= 0; j--) {
if (a[j]>a[j+1]) {
b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
else {
break;
}
}
}
for (int i = 0; i < n; i++) {
cout << a[i] << '\t';
}
cout << '\n';
cin >> shur;
zhueida = n-1;
zhueixiao = 0;
while (zhueida >= zhueixiao) {
zhongjian = (zhueida + zhueixiao) / 2;
if (shur >a[ zhongjian]) {
zhueixiao= zhongjian+1;
}
else
if (shur < a[zhongjian]) {
zhueida = zhongjian - 1;
}
else {
z = zhongjian;
cout << "你找的数在数组在[" << z << ']';
break;
}
}
if (z == -1) {
cout << "这个数组没有这个值" << endl;
}
cout << endl;
system("pause");//卡屏函数
return 0;
}