顺序搜索
- O(n)
int order_search(vector<int>& data, int target) {
int n = (int)data.size();
for(int i = 0; i < n; ++i) {
if(target == data[i])
return i;
}
}
快速搜索
- 平均O(n), 最坏O(n^2), 序列不需要有序
- 获取第k+1大的元素(下标k-1)
int quick_search(vector<int>& data, int l, int r, int key) {
int i = l;
int j = r;
int temp = data[l];
while(i < j) {
while(i < j && data[j] >= temp) --j;
data[i] = data[j]