静态查找——折半查找

来源:互联网 发布:如何开好淘宝直通车 编辑:程序博客网 时间:2024/06/09 17:01

针对数值类型关键字

#include <iostream>#include <stdio.h>#include <string.h>#include <cctype>using namespace std;#define EQ(a,b) (!strcmp((a),(b)))#define LT(a,b) (strcmp((a),(b)) < 0)#define LQ(a,b) (strcmp((a),(b)) <= 0)int Search_Bin(int *seq, int key){    int low = 1, high = 10;    while(low <= high)    {        int mid = (low + high) / 2;        if(seq[mid] == key)           {               cout << "Find the key" <<" and the position is " << mid+1 <<endl;               return mid;           }        else if(seq[mid] < key)            low = mid + 1;        else            high = mid - 1;    }    cout << "No find !" << endl;    return 0;}int main(){int seq_list[] = {1,2,3,4,5,6,7,8,9};    Search_Bin(seq_list,4);return 0;}
针对字符串类型关键字

int Search_Bin(char *seq, char key, int length){    int low = 1, high = length;    while(low <= high)    {        int mid = (low + high) / 2;        if(seq[mid] == key)           {               cout << "Find the key" <<" and the position is " << mid+1 <<endl;               return mid;           }        else if(seq[mid] < key)            low = mid + 1;        else            high = mid - 1;    }    cout << "No find !" << endl;    return 0;}int main(){char seq_list[] = "acdgjloqh";int seq_length = strlen(seq_list);char find_c ;cout << "Please input a character : " ;cin >> find_c;cout << endl;    Search_Bin(seq_list,find_c,seq_length);return 0;}


0 0
原创粉丝点击