第二章 :查詢與排序-------2.18題目講解_在有空字串中的有序字串陣列中查詢
在有空字串中的有序字串陣列中查詢:
#include<iostream>
using namespace std;
int indexOf(string arr[],string p,int length){
int begin=0;
int end=length-1;
// 可能取到等號,begin、end相鄰,正確解在end,indexOfMid指向begin所指元素
//經過迴圈,begin+1,與end重合,仍可進入迴圈求得正確解
while(begin<=end){
int indexOfMid=begin+((end-begin)>>1);
while(arr[indexOfMid].compare("")==0){
indexOfMid++;
//千萬注意! => begin、end、indexOfMid指向同一個元素的時候
if(indexOfMid>end) return -1;
}
if(arr[indexOfMid].compare(p)>0){
end=indexOfMid-1;
}
else if(arr[indexOfMid].compare(p)<0){
begin=indexOfMid+1;
}
else{
return indexOfMid;
}
}
return -1;
}
int main(){
string arr[]={"a","","ac","","ad","b","","ba"};
int res=indexOf(arr,"b",8);
cout<<res<<endl;
cout<<indexOf(arr,"c",8);
return 0;
}
結果:
相關文章
- 每日一練(24):在排序陣列中查詢數字排序陣列
- 在LoadRunner中查詢和替換字串字串
- 面試題——二維陣列中的查詢面試題陣列
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 二維陣列中的查詢陣列
- 微策略面試題:在旋轉後的陣列中查詢元素(二分查詢)面試題陣列
- Java陣列排序和查詢Java陣列排序
- 字串查詢(字串雜湊)字串
- 第二章 :查詢與排序-------希爾排序排序
- 查詢字串中連續出現的字元字串字元
- 【JZOF】二維陣列中的查詢陣列
- 陣列中查詢給定值陣列
- JavaScript專題之學underscore在陣列中查詢指定元素JavaScript陣列
- 第三章:查詢與排序(下)----------- 3.23 相關題解:排序陣列中找和的因子排序陣列
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- python怎麼查詢字串中是否包含某個字串Python字串
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 查詢陣列中第K大的元素陣列
- 九度 二維陣列中的查詢陣列
- python 字串查詢Python字串
- java查詢字串裡與指定字串相同的個數Java字串
- 查詢與排序02,折半查詢排序
- 34. 在排序陣列中查詢元素的第一個和最後一個位置(中)排序陣列
- 【劍指offer】二維陣列中的查詢陣列
- 九度 1384 二維陣列中的查詢陣列
- 劍指 offer 第一題: 二維陣列中的查詢陣列
- Linux - 查詢目錄下的所有檔案中是否含某個字串Linux字串
- MySQL 查詢字串的個數MySql字串
- linux下查詢字串Linux字串
- 字串查詢和替換字串
- 命行下的查詢與替換字串字串
- Elasticsearch 複合查詢——多字串多欄位查詢Elasticsearch字串
- 第三章:查詢與排序(下)----------- 3.29 題解:判斷陣列的包含問題排序陣列
- 第二章 :查詢與排序-------2.19題目詳解_找出最長連續遞增子序列排序
- C++查詢一個數是否在陣列中find用法C++陣列
- Python中查詢字串某個字元最常用的方法!Python字串字元
- 在 with 查詢中只查詢個別欄位
- 【轉】linux查詢目錄下的所有檔案中是否含有某個字串Linux字串