20201 1 22 二分查詢

2021-10-17 05:09:37 字數 2857 閱讀 7279

二分查詢的作用是將o(n)的複雜度變成o(logn)

mid = l+r >> 1 整數右移一位即相當於除以二

若為浮點數則寫作(1+r)/2

pi的定義:#define pi acos(-1.0)

const double eps = 1e-6

while( l+eps

二分題目a:在1到100中尋找能滿足制定式子的數,保留四位小數

#include

#include

#include

#include

#include

#include

#include

//冪函式pow()標頭檔案

const

double eps=

1e-6

;using

namespace std;

int t;

double n;

double ans1;

bool

check1

(double x)

intmain()

else

l=mid;

} cout

)<"\n"

;//保留四位小數(fixed)的意思是若無零則自動補零}}

return0;

}

二分題目b:在數列中找到能夠符合兩項相加等於規定數字的個數

#include

#include

#include

#include

#include

const

int maxn=

1e6+9;

using

namespace std;

int t,n,k;

int a[maxn]

;int ans1;

bool

check

(int x)

return0;

}int

main()

} cout<"\n";}

return0;

}

二分題目c:將牛放入馬廄中,求最小值中的最大值

#include

#include

#include

#include

#include

#include

#include

#define pi acos(-1.0)

const

int maxn=

1e6+9;

const

double eps=

1e-6

;using

namespace std;

int n,c;

int a[maxn]

;bool

check

(int x)}if

(num>=c)

return1;

else

return0;

}int

main()

cout<1<<

"\n"

;return0;

}

二分查詢d:分蛋糕

#include

#include

#include

#include

#include

#include

#define pi acos(-1.0)

const

int maxn=

1e6+9;

using

namespace std;

const

double eps=

1e-6

;double a[maxn]

;int n,f,t;

double ans1;

bool

check

(double x)

if(n1>=f+1)

return1;

else

return0;

}int

main()

sort

(a,a+n)

;double l=

0,r=a[n-1]

*a[n-1]

*pi;

//在最大體積和最小體積間找可能滿足情況的體積

double ans1=0;

while

(l+eps//無限逼近

else

r=mid;

} cout

)<"\n";}

return0;

}

二分查詢e:牛跳石頭,在n塊石頭中取m塊,再求最小值的最大值

#include

#include

#include

#include

#include

#include

#include

//#define pi acos(-1.0)

const

int maxn=

1e6+9;

const

double eps=

1e-6

;using

namespace std;

int l,m,n,l;

int a[maxn]

;int

main()

if(num>m)

r=mid-1;

else

l=mid+1;

} cout

}

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...

二分查詢及變種二分查詢

二分查詢也稱折半查詢 binary search 它的查詢效率很好。二分查詢有乙個要求是必須採用順序儲存結構,而且表種的元素是有序的。只有滿足這個條件我們才能使用二分查詢。查詢條件 查詢區域的左邊界,小於等於查詢區域的右邊界 查詢過程 1.迴圈條件 查詢條件 2.計算序列中間下標位置 3.如果待查詢...