第二章 :查詢與排序-------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):在排序陣列中查詢數字排序陣列
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 字串查詢(字串雜湊)字串
- 二維陣列中的查詢陣列
- 第三章:查詢與排序(下)----------- 3.23 相關題解:排序陣列中找和的因子排序陣列
- python怎麼查詢字串中是否包含某個字串Python字串
- 【JZOF】二維陣列中的查詢陣列
- 第二章 :查詢與排序-------希爾排序排序
- 陣列中查詢給定值陣列
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- JavaScript專題之學underscore在陣列中查詢指定元素JavaScript陣列
- linux下查詢字串Linux字串
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- 在排序陣列中查詢元素的第一個和最後一個位置排序陣列
- 查詢陣列中第K大的元素陣列
- MySQL 查詢字串的個數MySql字串
- 第二章 :查詢與排序-------2.19題目詳解_找出最長連續遞增子序列排序
- 34. 在排序陣列中查詢元素的第一個和最後一個位置(中)排序陣列
- Python中查詢字串某個字元最常用的方法!Python字串字元
- Elasticsearch 複合查詢——多字串多欄位查詢Elasticsearch字串
- JavaScript 中URL 查詢字串(query string)的序列與反序列化JavaScript字串
- 【劍指offer】二維陣列中的查詢陣列
- 第三章:查詢與排序(下)----------- 3.29 題解:判斷陣列的包含問題排序陣列
- 劍指 offer 第一題: 二維陣列中的查詢陣列
- 子字串查詢演算法字串演算法
- C++查詢一個數是否在陣列中find用法C++陣列
- 第二章 :查詢與排序-------2.17解題實戰_旋轉陣列的最小數字(改造二分法)排序陣列
- 在 with 查詢中只查詢個別欄位
- 陣列的主元素查詢陣列
- PHP 查詢、擷取字串函式詳解PHP字串函式
- 【劍指offer】【1】二維陣列中的查詢陣列
- 如何在SpringBoot/Tomcat的URL查詢字串中的支援括號?Spring BootTomcat字串
- 二維陣列查詢陣列
- Python字串string的查詢和替換Python字串
- mysql 如何查詢逗號“,”分割的字串MySql字串
- JS字串最長迴文查詢JS字串
- Linuxvivim查詢和替換字串命令Linux字串
- mysql拆分字串做條件查詢MySql字串