日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++——《算法分析》实验壹——二分搜索算法

發(fā)布時間:2025/3/15 c/c++ 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++——《算法分析》实验壹——二分搜索算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實驗?zāi)康?#xff1a;
1.理解分治算法的概念和基本要素;
2.理解遞歸的概念;
3.掌握設(shè)計有效算法的分治策略;
4.通過二分搜索技術(shù)學(xué)習(xí)分治策略設(shè)計技巧;
實驗原理:
二分搜索算法也稱為折半查找法,它充分利用了元素間的次序關(guān)系,采用分治策略,可在最壞的情況下用O(log n)完成搜索任務(wù)。
實驗內(nèi)容:
1.使用二分搜索算法查找任意N個有序數(shù)列中的指定元素。
2.通過上機實驗進行算法實現(xiàn)。
3.保存和打印出程序的運行結(jié)果,并結(jié)合程序進行分析,上交實驗報告。
4.至少使用兩種方法進行編程。
實驗代碼:

#include <iostream> using namespace std; int middlesortd(int num[], int n, int low, int high) {if (low > high) return -1;int middle = low + (high - low) / 2;if (num[middle] == n) return middle;else if (n < num[middle]) return middlesortd(num, n, low, middle - 1);else return middlesortd(num, n, middle + 1, high); }int middlesort(int num[], int n, int low, int high) {while (low <= high) {int middle = low + (high - low) / 2;if (num[middle] == n) return middle;else if (n < num[middle]) high = middle - 1;else low = middle + 1;}return -1; }int main() {int n, m, l,j;int s[100];cout << "請輸入有序數(shù)組個數(shù):";cin >> n;cout << "請輸入有序數(shù)組:";for (int i = 0; i < n; i++) cin >> s[i];cout << "請輸入你要查找的數(shù):";cin >> l;cout << "請選擇查找方式:1、直接查找 2、遞歸查找";cin >> j;if (j == 1) {m = middlesort(s, l, 0, n - 1);if (m == -1) cout << "直接查找:很抱歉,找不到這個數(shù)!";else cout << "直接查找:找到了!是數(shù)組中第" << m + 1 << "個數(shù)";} else if (j == 2) {m = middlesortd(s, l, 0, n - 1);if (m == -1) cout << "遞歸查找:很抱歉,找不到這個數(shù)!";else cout << "遞歸查找:找到了!是數(shù)組中第" << m + 1 << "個數(shù)";} }

實驗結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的C++——《算法分析》实验壹——二分搜索算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。