归并排序
查看原帖
归并排序
1196981
zkystudent2027楼主2023/12/31 13:29

提交归并排序为什么无法编译通过,实际在DevC++中可以过```cpp #include using namespace std; const int N = 100050; int a[N] = { 0 }; inline static void Merge(int* p, int st, int mid, int en) { int* s = new int[en +2]; memset(s, en+2, 0); for (int x = st; x<= en;x++) s[x] = p[x]; int i = st, j = mid + 1, k = st; for (i = st, j = mid + 1; i <= mid && j <= en; k++) { if (p[i] >= p[j]) p[k] = s[j++]; else p[k] = s[i++]; } while (i <= mid && i <= en) { p[k++] = s[i++]; } while (j <= en) p[k++] = s[j++]; } inline static void sort(int* p, int st, int en) { if (st < en) { int mid = (st + en) / 2; sort(p, st, mid); sort(p, mid + 1, en); Merge(p,st,mid, en); } } int main() { int t; cin >> t; for (int i = 1; i <= t; i++) cin >> a[i]; sort(a, 1, t); for (int i = 1; i <= t; i++) cout << a[i] << " "; }

2023/12/31 13:29
加载中...