1. 程式人生 > 其它 >插入排序還是歸併排序

插入排序還是歸併排序

 

 

 

 這題考察的就是資料結構裡面的插入排序和歸併排序的每一步的操作和流程。

可惜我太菜了。考試的時候做不出來!

#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int a[N], b[N];
int n;
int main() {
    cin >> n;
    for(int i = 0; i < n; i++) cin >> a[i];
    for(int i = 0; i < n; i++) cin >> b[i];
    int flag = 0
, i, j; for(i = 0; i < n - 1; i++) { if(b[i] > b[i+1]) break; } for(j = i + 1; j < n; j++) { if(a[j] != b[j]) break; } if(j==n) { cout << "Insertion Sort" << endl; sort(a, a+i+2); for(int j = 0; j < n; j++) {
if(j) cout << " "; cout << a[j]; } } else { cout << "Merge Sort" << endl; int k = 1; flag = 1; while(flag) { flag = 0; for(int j = 0; j < n; j++) { if(a[j] != b[j]) flag = 1; } k
<<= 1; for(int j = 0; j < n / k; j++) { sort(a+j*k,a+(j+1)*k); } sort(a+n/k*k,a+n); } for(int j = 0; j < n; j++) { if(j) cout << " "; cout << a[j]; } } return 0; }