C++——《算法分析与设计》实验报告——二分搜索算法
生活随笔
收集整理的這篇文章主要介紹了
C++——《算法分析与设计》实验报告——二分搜索算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 實驗名稱: 二分搜索算法 | 實驗地點: |
| 實驗目的: | |
| 實驗原理: 二分搜索算法也稱為折半查找法,它充分利用了元素間的次序關系,采用分治策略,可在最壞的情況下用O(log n)完成搜索任務。 | |
| 實驗內容: | |
| ? 源代碼: #include<stdio.h> #include<stdlib.h> #include<iostream> #include<algorithm> using namespace std; //這個算法僅適用于有序序列 int a[1000]; int BinarySearch1(int a[], int left, int right, int x) {int mid;mid = (left + right) / 2;if(left < right) {if (x == a[mid])return mid;else if (x < a[mid])return BinarySearch1(a, left, mid - 1, x);//遞歸調用前一半數組elsereturn BinarySearch1(a, mid + 1, right, x);//。。。后一半。。。}return 0; } int BinarySearch2(int a[], int left, int right, int x) {int mid;while (left <= right) {mid = (left + right) / 2;if (x == a[mid])return mid;else if (x < a[mid])right = mid - 1;//遞歸調用前一半數組elseleft = mid + 1;//。。。后一半。。。}return 0; } int main() {int x, n, flag = 0;cin >> x >> n;for (int i = 1; i <= n; i++)cin >> a[i];flag = BinarySearch2(a, 1, n, x);if (flag)printf("%d", flag);elseprintf("no answer");return 0; }? | |
| 實驗結果: BinarySearch1: BinarySearch2: | |
| 心得與體會: ? | |
參考文章
https://blog.csdn.net/zsnowwolfy/article/details/81039836
https://blog.csdn.net/weixin_45929067/article/details/104781020
總結
以上是生活随笔為你收集整理的C++——《算法分析与设计》实验报告——二分搜索算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript——jQuery A
- 下一篇: C++——《算法分析与设计》实验报告——