幾個經典題目
1.二分搜尋:給定已排好序的n個元素a[0:n-1],現要在這n個元素中找出一指定元素x。
比較簡單,直接貼**
2歸併排序int binary_search(int a,int x)//二分搜尋,找到x返回角標,不存在則返回-1;
return -1;
}
對於兩個有序陣列,可通過一重迴圈,將其排序。將陣列逐次分割,最後分割n個陣列,可以認為此陣列有序。然後在往回歸並,最終得到有序數列。
完整**如下:
#include using namespace std;
void merge_div(int low,int high);//分割,歸併
void merge_sort(int low,int high,int mid);//排序
int a[10]=;
void input();
int main()
void merge_div(int low,int high)
void merge_sort(int low,int high,int mid)
void readdata()
void quicksort(int low,int high)
return ;
}int position(int low,int high)
{ int num=a[low];
int i=low,j=high;
while(inum)//從右向左找比num小的點。注意i
遞迴演算法與分治策略
關於遞迴的學習 1 遞迴演算法的基本思想是 把規模大的 較難解決的問題變成規模較小的的問題。規模較小的問題又變成規模更小的問題,並且小到一定程度可以直接得出它的解,從而得到原來問題的解。遞迴是一種直接或間接呼叫自身的函式的一種演算法,很常用,一般用於解決三類問題 資料的定義按遞迴定義的。fibona...
遞迴與分治策略
1 全排列問題 設r n 是要進行排列的n個元素。集合x中元素的全排列記為perm x 求r n 的全排列perm r n 用遞迴演算法求解 1 找出遞迴子結構性質 即原問題的解包含了子問題的解,且子問題的描述與原問題相同。這就可以用子問題的解來構造原問題的解。設r i r n 這是乙個子問題。設 ...
遞迴與分治策略
1.遞迴 直接或間接地呼叫自身的演算法稱為遞迴演算法。用函式自身給出定義的函式稱為遞迴函式。1 階乘函式 include using namespace std int main int factorial int n 2 fibonacci數列 include using namespace st...