對分查找
給定一個整數X和整數A0,A1,…,AN-1,後者已經預先排序並存在內存中,求使得Ai=X的下標i,如果X不在數據中,則返回i=-1。
int BinarySearch (const ElementType A[], ElementType x, int N)
{
int Low, Mid, High;
Low = 0; High = N - 1;
while (Low <= High)
{
Mid = (Low + High) / 2;
if (A[Mid] < x)
Low = Mid + 1;
else if (A[Mid] > x)
High = Mid - 1;
else
return Mid; //Found
}
return NotFound //NotFound is defined as -1
}
歐幾里得算法
計算兩個整數的最大公因數(Gcd),通過連續計算餘數直到餘數是0爲止,最後的非零餘數就是最大公因數。
unsigned int Gcd (unsigned int M, unsigned int N)
{
unsigned int Rem;
while (N > 0)
{
Rem = M % N;
M = N;
N = Rem;
}
return M;
}
冪運算
遞歸算X^N
long int Pow (long int X;unsigned int N)
{
if (N == 0)
return 1;
if (IsEven(N))
return Pow (X * X, N / 2);
else
return Pow (X * X, N / 2) * X;
}