zoukankan      html  css  js  c++  java
  • 二分查找练习

    #include <iostream>
    
    using namespace std;
    
    int arr1[] = { 1,2,3,4,5,6,7,8,9 };
    int arr2[] = { 1,1,1,2,3,3,4,6,98 };
    
    int MyBinarySearch(int array[], int begin, int end, const int value)
    {
    	while (begin <= end)
    	{
    		int middle = (begin + end) / 2;
    		if (value > array[middle])
    			return MyBinarySearch(array, (middle+1), end, value);
    		else if (value < array[middle])
    			return MyBinarySearch(array, 0, (middle-1), value);
    		else
    			return middle;
    	}
    	return -1;
    }
    
    int  MyBinarySearch1(int array[], int length,const int value)
    {
    	int begin = 0;
    	int end = length - 1;
    	while (begin <= end)
    	{
    		int middle = (begin + end) / 2;
    		if (value == array[middle])
    			return middle;
    		else if (value > array[middle])
    			begin = middle + 1;
    		else
    			end = middle - 1;
    	}
    
    	return -1;
    }
    
    
    int main()
    {
    	cout << MyBinarySearch(arr1, 0, 8, 7) << endl;
    	cout << MyBinarySearch(arr2, 0, 8, 98) << endl;
    	cout << MyBinarySearch(arr1, 0, 8, 1) << endl;
    	cout << MyBinarySearch(arr2, 0, 8, 1) << endl;
    	cout << endl;
    	cout << MyBinarySearch(arr1, 0, 8, 77) << endl;
    	cout << MyBinarySearch(arr1, 0, 8, 0) << endl;
    	cout << MyBinarySearch(arr2, 0, 8, 7) << endl;
    	cout << MyBinarySearch(arr2, 0, 8, 99) << endl;
    	cout << MyBinarySearch(arr2, 0, 8, 0) << endl;
    	cout << endl;
    
    	cout << MyBinarySearch1(arr1, 9, 7) << endl;
    	cout << MyBinarySearch1(arr2, 9, 98) << endl;
    	cout << MyBinarySearch1(arr1, 9, 1) << endl;
    	cout << MyBinarySearch1(arr2, 9, 1) << endl;
    	cout << endl;
    	cout << MyBinarySearch1(arr1, 9, 77) << endl;
    	cout << MyBinarySearch1(arr1, 9, 0) << endl;
    	cout << MyBinarySearch1(arr2, 9, 7) << endl;
    	cout << MyBinarySearch1(arr2, 9, 99) << endl;
    	cout << MyBinarySearch1(arr2, 9, 0) << endl;
    	cout << endl;
    
    
        return 0;
    }
    

      

  • 相关阅读:
    vue父子组件传参之ref
    新版chrome移动端踩坑
    vue动态绑定class 选中当前列表变色
    vue 利用computed对文章列表进行排序
    vue数组排序
    Vue+Koa2移动电商实战 (十一)前后端通讯和跨域处理
    jQuery基础知识--Form基础
    关于可变数组的一点小知识
    锋利的jQuery读书笔记---jQuery中动画
    锋利的jQuery读书笔记---jQuery中的事件
  • 原文地址:https://www.cnblogs.com/itdef/p/6097955.html
Copyright © 2011-2022 走看看