題目:以遞迴和分治的思想實現二分搜尋
題目分析,二分搜尋是在解空間有序的情況下,取整體中間的值與目標值進行對比,如果與目標值相同,那麼就是所求解,否則,若比中間值大,則刪去小的那一半,這樣每次可以減少一半的查詢,二分搜尋的複雜度應該為 o(log n) ,對於整個程式來說,我們要讓乙個隨機的陣列有序,呼叫algorithmn 庫的中函式sort ,此時的時間複雜度應該o (nlogn) ,因此在這種情況下,整個程式中時間開銷最大的應該是排序的時間,所以整個程式的時間複雜度應該為 o(nlogn)
**如下
#include
#define cl(arr) memset(arr,0,sizeof(arr))
#define fl(arr,val) memset(arr,val,sizeof(arr))
using
namespace
std;
const
int maxn=1e5+50;
const
int mod=1e9+7;
const
int inf=0x3f3f3f3f;
typedef pairpii;
typedef
long
long ll;
int n;
int a[maxn];
int pos=-1;
void binarysearch(int x,int l,int r)
int mid=l+(r-l)/2;
if(a[mid]==x)
if(a[mid]>x)
else
}int main()
sort(a+1,a+101);
for(int i=1; i<=100; i++)
printf("\n");
int k;
scanf("%d",&k);
binarysearch(k,1,100);
if(pos==-1)
else
printf("%d\n",pos);
return
0;}
輸出分析:本程式通過查詢陣列中的某乙個數,返回該數在陣列的中索引。通過二分的方式查詢該索引。 3 7日C 上機作業
題目1 修改教材的clock類,增加物件的行為 內容 1 走時 2 以12時制的形式顯示時鐘的當前值 3 編寫測試類的程式 建立兩個時鐘物件,分別呼叫物件的行為.設計思路 根據系統自帶的clock t的函式,再設定空迴圈,我們能夠使系統延遲1秒輸出,同時在時鐘的類當中增加設定時鐘和顯示時鐘的函式 i...
4月9日上機作業
1.編寫乙個簡單程式,要求陣列長度為5,靜態賦值10,20,30,40,50,在控制台輸出該陣列的值。package demo1 public class d1 for int i 0 i 2.編寫乙個簡單程式,要求陣列長度為5,動態賦值10,20,30,40,50,在控制台輸出該陣列的值。pack...
c 上機作業
1 時鐘類 include using namespace std class time int add a minute int add an hour int add seconds int n int add minutes int n int add hours int n void tia...