归并排序

    科技2022-08-29  106

    #include<bits/stdc++.h> using namespace std; int B[10010]; void merge(int A[], int low, int mid, int high) { int i, j, k; for (k = low;k <= high; k++) B[k] = A[k]; for (i = low, j = mid + 1, k = i; i <= mid && j <= high; k++) { if (B[i] <= B[j]) A[k] = B[i++]; else A[k] = B[j++]; } while (i <= mid) A[k++] = B[i++]; while (j < high) A[k++] = B[j++]; } void Mergesort(int A[], int low, int high) { if (low < high) { int mid = (low + high) / 2; Mergesort(A, low, mid); Mergesort(A, mid + 1, high); merge(A, low, mid, high); } } int main() { int A[10] = { 9,8,7,6,5,4,3,2,1,0 }; Mergesort(A, 0, 9); for (int i = 0; i < 10; i++) { cout << A[i]<<" "; } }
    Processed: 0.009, SQL: 9