C ++ ::二进制搜索

描述

二进制搜索是一种广泛使用的搜索算法,该算法要求在应用搜索之前对数组进行排序。该算法背后的主要思想是将数组始终分为两半(分而治之),直到找到元素或所有元素用尽为止。

例子

    #include<iostream>
    #include<algorithm>

    void show(int a[], int arraysize) {
        for (int i = 0; i < arraysize; ++i)
            std::cout << a[i] << " ";
    }
	int main() {
	    int a[] = { 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
	    int asize = sizeof(a) / sizeof(a[0]);
	    std::cout << "\n The array is : ";
	    show(a, asize);
	  	/* Make sure to sort the array before applying binary_search() */
	    std::sort(a, a + asize);

	    std::cout << "\nSearch for element 10 : ";
	    if (binary_search(a, a + 10, 10))
	    	std::cout << "\nElement found in the array";
	    else
	        std::cout << "\nElement not found in the array";

        return 0;
	}