Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Merge Sort"
https://onlinejudge.u-aizu.ac.jp/problems/ALDS1_5_B
・マージソート
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #ALDS1_5_B : Merge Sort
/* Aizu Online Judge in C++ #ALDS1_5_B : Merge Sort https://onlinejudge.u-aizu.ac.jp/problems/ALDS1_5_B 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int b[1000000],c[1000000],n; int main(void){ cin>>n; for(int i=0;i<n;i++){ cin>>c[i]; } b[1]=0; for(int i=2;i<=n;i++){ b[i]=b[i/2]+b[(i+1)/2]+i; } sort(c,c+n); for(int i=0;i<n;i++){ cout<<c[i]<<((i==n-1) ? "\n" : " "); } cout<<b[n]<<endl; return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/