演算法筆記 -歸併排序 快速冪
1.歸併排序
#include#include#include#include#include #include #include #includeusing namespace std;
typedef long long ll;
const double eps = 1e-5;
const double pi = acos(-1.0);
const int maxn=100;
int a=;
int b=;
int n=0;
// 序列合併問題模板
void merge(int a,int l1,int r1,int l2,int r2)else
}while(i<=r1) temp[index++]=a[i++]; // =
while(j<=r2) temp[index++]=a[j++]; // =
for(i=0;i2.快速冪
#include#include#include#include#include #include #include #includeusing namespace std;
typedef long long ll;
const double eps = 1e-5;
const double pi = acos(-1.0);
// 快速冪的遞迴寫法 時間慢
ll binarypow_recursion(ll a,ll b,ll m)
else
}// 快速冪的迭**法 時間快
ll binarypow_iteration(ll a,ll b,ll m)
a=a*a%m;
b>>=1;
}return ans;
}int main(){
//加快cin cout 時間
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cout《遞迴比迭代要耗時,資料量大時可能會超時,洛谷上會tle,建議用迭代法
演算法筆記 歸併排序 快速排序 計數排序
public static void mergesort int a public static void mergesort int a,int start,int end 取中點 int mid start end start 2 遞迴排序左半部分 mergesort a,start,mid 遞...
分治演算法 快速排序,歸併排序
快速排序 分析 資料結構p186.重要 當原始檔有序時複雜度是o n2 此時氣泡排序最好,無序時快速排序是最好的方法。void quicksort int a,int l,int r int i l int j r int x a i a l 即a i 就是第乙個坑 挖坑填數 while j i i...
《演算法筆記》 歸併排序
歸併操作,也叫歸併演算法,指的是將兩個順序序列合併成乙個順序序列的方法,平均時間複雜度為o nlogn 歸併排序的實現分為遞迴實現與非遞迴 迭代 實現。如 設有數列 初始狀態 6,202,100,301,38,8,1 第一次歸併後 比較次數 3 第二次歸併後 比較次數 4 第三次歸併後 比較次數 4...