|
发表于 2022-10-28 10:55:13
|
显示全部楼层
本帖最后由 jackz007 于 2022-10-28 10:56 编辑
- #define _CRT_SECURE_NO_WARNINGS 1
- #include<iostream>
- #include <stdlib.h>
- using namespace std ;
- void sort(int d[] , int n)
- {
- int i , j , t ;
- for(i = 0 ; i < n - 1 ; i ++) {
- for(j = i + 1 ; j < n ; j ++) {
- if(d[i] > d[j]) {
- t = d[i] ;
- d[i] = d[j] ;
- d[j] = t ;
- }
- }
- }
- }
- int Bsearch(int arr[] , int key)
- {
- int low = 0 ;
- int high = 10 ;
- int mid = (low + high) / 2 ;
- while (low <= high)
- {
- mid = (low + high) / 2 ; // 少了这一句
- if (key == arr[mid]) return mid ;
- else if (key < arr[mid]) high = mid - 1 ;
- else low = mid + 1 ;
- }
- return -1 ;
- }
- int main()
- {
- int arr[50] ;
- int key = -1 ;
- int result ;
- cout << "输入一组有序数字(个数为11)" << endl ;
- for (int i = 0 ; i < 11 ; i ++) cin >> arr[i] ;
- cout << "输入你想要找的元素: " << endl ;
- cin >> key ;
- cout << "要找的元素是 : " << key << endl ;
- sort(arr , 11) ;
- result = Bsearch(arr , key) ;
- if(result >= 0) cout << Bsearch(arr , key) << endl ;
- else cout << "没有找到!" << endl ;
- system("pause") ;
- }
复制代码 |
|