MOOC清华《程序设计基础》第4章:查找扑克牌(折半查找)

来源:互联网 发布:知乎精彩回答 微盘 编辑:程序博客网 时间:2024/06/12 19:47
//在已经排好序(前提)的数列中查找某个数,可以用折半查找算法 //为“机会公平”起见,一般从中间开始查找——这样通常效率是最高的 #include <iostream>using namespace std;int main(){int cards[13] = {101, 112, 113, 206, 207, 208, 303, 304, 309, 311, 402, 405, 410};//折半查找要求数列是有序数列 int id = -1, low = 0, high = 12;  //初始化查找范围,并假设没有黑桃Q while (low <= high){int middle = (low + high) / 2;if(cards[middle] == 112){id = middle;break;}else if(cards[middle] > 112)high = middle - 1;  //更新范围 elselow =middle + 1;  //更新范围 }cout << "黑桃Q在第" << id + 1 << "张" << endl;return 0;} 

阅读全文
0 0
原创粉丝点击