演算法筆記 二分法再回首

2021-10-03 22:27:34 字數 935 閱讀 8571

直接貼上學習記錄

#include

using

namespace std;

const

double eps=

1e-5

;//精度

typedef

long

long ll;

//尋找有序數列第乙個滿足某條件的函式模板:以下為尋找第乙個大於等於x的數字的位置

intsolve

(int a,

int left,

int right,

int x)

else

return left;}}

//計算根號2的近似值

doublef(

double x)

double

cal(

)else

}return mid;

}//快速冪問題

//如果b是奇數,那麼有a^b=a*a^(b-1);

//如果b是偶數,那麼有a^b=a^(b/2)*a^(b/2);

//求a^b%m,遞迴寫法

ll binarypow

(ll a,ll b,ll m)

if(b%2==

1)return

binarypow

(a,b-

1,m)

%m;//if(b%2==1)可以用if(b&1)代替,這是因為b&1進行位與操作,

//判斷b的末尾是否為一)

else

}//求a^b%m,迭**法

ll bin(ll a,ll b,ll m)

a=a*a%m;

b>>1;

//將b的二進位制位右移一位,或者可以寫成b=b/2;}}

intmain()

二分法 演算法

查詢演算法中的 二分法 是這樣定義的 給定n個從小到大排好序的整數序列list,以及某待查詢整數x,我們的目標是找到x在list中的下標。即若有list i x,則返回i 否則返回 1表示沒有找到。二分法是先找到序列的中點list m 與x進行比較,若相等則返回中點下標 否則,若list m x,則...

演算法 二分法

二分法可以歸為兩大類 二分查詢演算法 二分排序演算法 二分合併演算法 演算法中經常用到二分查詢演算法,比如最常規的應用就是在乙個有序陣列中找特定的數,但是如何寫出乙個完整準確的二分法呢,邊界條件如何判斷,到底是等於還是不等?可能會困惱大家,比如說查詢第乙個等於5的數,那又在如何查詢呢?查詢最後乙個等...

二分法 演算法

二分法查詢,這個演算法要求資料要是有序的。比如有這樣的問題 找出乙個陣列中,兩個數的和小於等於15,然後輸出他們,否則就單獨輸出較大的數。binarysearch.cpp include using namespace std void binarysearch int array,int leng...