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;
    }
    

      

  • 相关阅读:
    一种C#读写二进制文件的通用方法
    关于POP3协议的一点资料
    关于看图工具的几点想法
    在WPF程序中将控件所呈现的内容保存成图像
    Nuget挂了的解决方法
    VisualStudio 2012中的单元测试
    在Andorid平板上体验Windows8的猜想
    创建自己的awaitable类型
    【转载】:最佳注释
    百度云盘试用
  • 原文地址:https://www.cnblogs.com/itdef/p/6097955.html
Copyright © 2011-2022 走看看