数据结构练习日常(一)

二分查找(18.09.27)

  • sort()函数
    • 头文件 #include
    • 时间消耗:n*log2^n
    • int a[cnt]
      • sort(a,a+cnt)  //升序排序
      • sort(a,a+cnt,cmp)
        • cmp(int i,int j){               //降序排序

                             return i>j;

                       }

  • 二分查找无脑运行
  • #include
    #include
    #include
    #define LEN 100000
    using namespace std;
    //二分查找迭代实现 
    int binary(int low, int high, int num, int arr[]) {
    	int mid = (low + high) / 2;
    	if (arr[mid] == num) {
    		return mid;
    	}
    	else if (arr[mid] < num) {
    		low = mid + 1;
    		binary(low, high, num, arr);
    	}
    	else {
    		high = mid;
    		binary(low, high, num, arr);
    	}
    }
    
    int main() {
    	int arr[100000];
    	int cnt;
    	cin >> cnt;
    	//将无序数字输入数组 
    	for (int i = 0; i < cnt; i++) {
    		cin >> arr[i];
    	}
    	//二分排序先将数组变为有序数组
    	sort(arr, arr + cnt);
    
    	int num;
    	cin >> num;
    	int k = binary(0, cnt - 1, num, arr);
    	if(0 < k < cnt){
            cout<

    返回查找数字在无序数组中位置

 

你可能感兴趣的:(learning,diary,算法,C++)