二分查找法

来源:互联网 发布:windows专业版激活工具 编辑:程序博客网 时间:2024/05/29 19:13
//二分查找法#include <stdio.h>#define BUFFERSIZE 10int binary_search(int array[], int low, int high, int des){while(low <= high){int middle = low + (high - low)/2;if(des == array[middle]){return middle;}if(des > array[middle]){low += 1;}else{high -= 1;}}return -1;}int binary_search_recur(int array[], int low, int high, int des){if(low > high){return -1;}int middle = low + (high - low)/2;if(des == array[middle]){return middle;}if(des > array[middle]){low += 1;}else{high -= 1;}return binary_search_recur(array, low, high, des);}int main(int argc, char* argv[]){printf("Hello Search !\n");int yx[BUFFERSIZE] = {0};for(int ii = 0; ii < BUFFERSIZE; ii++){yx[ii] = ii;}printf("yx:");for(int ii = 0; ii < BUFFERSIZE; ii++){printf(" %d", yx[ii]);}printf("\n");int result1 = binary_search(yx, 0, BUFFERSIZE - 1, 11);printf("result1 = %d\n", result1);int result2 = binary_search_recur(yx, 0, BUFFERSIZE - 1, 11);printf("result2 = %d\n", result2);return 0;}

0 0