常用查詢演算法 (轉)
//search.h包含了所有的常用查詢演算法
//使用順序查詢法的查詢
//seqSearch(const int arr[],int first,int last,int target)
template
int seqSearch(const T arr[],int first,int last,const T& target)
{
int i=first;
//掃描下標範圍first<=i
while (!(i==last)&&!(arr[i]==target))
i++;
return i; //i是匹配值的下標,或者,如果沒有匹配,則i=last
}
//模板函式find_last_of()的實現
template
int find_last_of(const T arr[],int first,int last,const T& target)
{
int i=last-1;
//描掃下標範圍first<=i
while(i>=first&&target!=arr[i])
i--;
if (i
}
//二分查詢演算法函式binSearch()的實現
template
int binSearch(const T arr[],int first,int last,const T& target)
{
int mid; //中間點的下標
T midValue; //用於儲存arr[mid]元素值
int origLast=last; //儲存last的初始值
while(first
mid=(first+last)/2;
midValue=arr[mid];
if (target==midValue) //有一個匹配
return mid;
//確定要查詢哪個子表
else if(target
else
first=mid+1; //查詢子表的後半部分,重新設定first
}
return origLast; //沒有找到目標值
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-963768/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 常用查詢演算法演算法
- 常用的 STL 查詢演算法演算法
- oracle常用經典SQL查詢 (轉)OracleSQL
- (轉)Oracle常用資料字典查詢語句Oracle
- 常用的系統狀態查詢命令(轉)
- 查詢演算法__插值查詢演算法
- sql常用查詢命令SQL
- Oracle DBA常用查詢Oracle
- 查詢索引 常用SQL索引SQL
- oracle常用SQL查詢OracleSQL
- 常用SQL查詢1SQL
- 常用SEO查詢工具
- 常用查詢網址
- 查詢演算法__二分查詢演算法
- 查詢演算法__Fibonacci查詢演算法
- 查詢演算法演算法
- 演算法 - 查詢演算法
- 演算法(查詢)演算法
- #查詢演算法#【1】簡單查詢:順序、折半查詢演算法
- 查詢演算法之二分查詢演算法
- MongoDB 常用查詢語法MongoDB
- oracle常用維護查詢Oracle
- Gremlin -- 常用查詢用法REM
- Mongodb 常用的查詢方法MongoDB
- Oracle 常用SQL查詢列表OracleSQL
- oracle常用狀態查詢Oracle
- 常用ORACLE查詢命令SQLOracleSQL
- oracle 常用查詢檢視Oracle
- 查詢演算法(上)演算法
- 查詢演算法(下)演算法
- Java 查詢演算法Java演算法
- ACM常用STL查詢手冊ACM
- Oracle常用的查詢語句Oracle
- EBS 在Linux常用查詢Linux
- oracle常用經典sql查詢OracleSQL
- 查詢轉換
- 二分查詢【折半查詢】演算法 PHP 版演算法PHP
- 插值查詢演算法演算法