acm第十五次新二分法

一、二分查找算法
①簡單定義:在一個單調有序的集合中查找元素,每次將集合分爲左右兩部分,判斷解在哪個部分中並調整集合上下界,重複直到找到目標元素。
②時間複雜度:O (logn),優於直接順序查找O(n)
③基本思想:二分查找的基本思想是將n個元素分成大致相等的兩部分,取a[n/2]與x做比較,如果x=a[n/2],則找到x,算法中止;如果x<a[n/2],則只要在數組a的左半部分繼續搜索x,如果x>a[n/2],則只要在數組a的右半部搜索x。
二、查找連續函數的寫法
//x:待查找的值,Caculate():所要查找的函數,在這裏單調遞增
//需保證查找的值在區間範圍內
double low=“區間下界”,high=“區間上界”,mid;
while(high - low > 1.0e-6)
{
mid = (high + low)/2;
if(Caculate(mid)<x)
low=mid;
else
high=mid;
}
暫且只有這樣,等我再研究研究…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章