二分搜尋演算法的實現
#include <iostream>
#include <time.h>
#include <algorithm>
//二分法的遞迴實現
using namespace std;
int Recursion(int *list, int left, int right, int value)
{
if(left > right)
return -1;
int min_pos = (left + right) / 2;
if(list[min_pos] == value)
{
return min_pos;
} else if(list[min_pos] > value)
{
return Recursion(list, min_pos + 1, right, value);
} else
{
return Recursion(list, left, min_pos - 1, value);
}
}
//非遞迴實現二分法
int Non_Recursion(int *list, int left, int right, int value)
{
while(left <= right)
{
int min_pos = (left + right) / 2;
if(list[min_pos] > value)
{
left = min_pos + 1;
} else if(list[min_pos] < value)
{
right = min_pos - 1;
} else
return min_pos;
}
return -1;
}
int main()
{
int *array;
int length;
cin >> length;
array = new int[length];
for(int i = 0; i < length; i++)
cin >> array[i];
sort(array, array + length);
cout << "請輸入要查詢的元素(-1 為未找到):" << endl;
int x;
cin >> x;
clock_t start, finish;
start = clock();
cout << "遞迴查詢的位置: " << Recursion(array, 0, length - 1, x);
finish = clock();
cout <<endl<<"the time cost is:" << double(finish - start) / CLOCKS_PER_SEC<<endl;
start = clock();
cout << "非遞迴查詢的位置: " << Non_Recursion(array, 0, length - 1, x);
finish = clock();
cout <<endl<<"the time cost is:" << double(finish - start) / CLOCKS_PER_SEC<<endl;
}
相關文章
- #演算法#二分搜尋演算法
- 用PHP來實現二分搜尋樹(BST)PHP
- 【譯】Swift演算法俱樂部-二分搜尋Swift演算法
- Python之 常用查詢演算法:最小項搜尋、順序搜尋、二分搜尋Python演算法
- Sunday搜尋演算法實現演算法
- BM搜尋演算法C實現演算法
- 二分搜尋演算法-吃香蕉問題演算法
- 06 二分搜尋--ing
- 二分搜尋樹元素的插入
- 二分搜尋演算法求元素位置(c語言)演算法C語言
- 利用 TensorFlow 實現排序和搜尋演算法排序演算法
- 二分搜尋(折半查詢)
- 演算法與資料結構之二分搜尋樹演算法資料結構
- ASP智慧搜尋的實現 (轉)
- 二分搜尋之搜尋陣列中目標元素的首尾下標陣列
- 淘寶搜尋演算法現狀分析演算法
- Elasticsearch搜尋功能的實現(五)-- 實戰Elasticsearch
- Laravel + Elasticsearch 實現中文搜尋LaravelElasticsearch
- Elasticsearch 實現簡單搜尋Elasticsearch
- Jquery + Bootstrap 實現搜尋框jQueryboot
- PHP實現搜尋附近的人PHP
- 實現延遲搜尋功能
- 【從蛋殼到滿天飛】JS 資料結構解析和演算法實現-二分搜尋樹(二)JS資料結構演算法
- 【從蛋殼到滿天飛】JS 資料結構解析和演算法實現-二分搜尋樹(一)JS資料結構演算法
- 資料結構-二分搜尋樹資料結構
- 尋路之 A* 搜尋演算法演算法
- 海量資料搜尋---demo展示百度、谷歌搜尋引擎的實現谷歌
- vue2實現搜尋結果中的搜尋關鍵字高亮Vue
- 二叉搜尋樹演算法詳解與Java實現演算法Java
- 如何用Redis實現搜尋介面Redis
- laravel8實現ES搜尋Laravel
- elasticsearch實現基於拼音搜尋Elasticsearch
- 原生javascript實現的選取搜尋元件JavaScript元件
- A*搜尋演算法概述演算法
- 圖的廣度優先搜尋和深度優先搜尋Python實現Python
- Redis 實戰 —— 10. 實現內容搜尋、定向廣告和職位搜尋Redis
- [轉載] PHP 基於字典樹演算法實現搜尋聯想功能PHP演算法
- 隱含波動率模型-增量搜尋演算法-python實現模型演算法Python