标签:ace its 入口 cout ios i++ lse ++ 技术
// test.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> #include <type_traits> using namespace std; int sum; int *b; void merge_sort(int a[], int low, int high); void merge(int a[], int low, int mid, int high); void merge_sort(int a[],int low,int high) { int mid; if (low < high) { mid = (low + high) / 2; merge_sort(a, low, mid); merge_sort(a, mid + 1, high); merge(a, low, mid, high); }
} void merge(int a[], int low, int mid, int high) { int i = low; int j = mid + 1; int k = 0; while (i <= mid && j <= high) { if (a[i] <= a[j]) b[k++] = a[i++]; else { b[k++] = a[j++]; sum += (mid - i + 1);//此处重难点 画图思考 } } while (i <= mid) { b[k++] = a[i++]; } while (j <= high) { b[k++] = a[j++]; } for (k = 0, i = low; i <= high; i++, k++) { a[i] = b[k]; } } int main() { int n, i=0, temp; int a[10000]; cin >> n; sum = 0; b = new int[n]; while(cin >> temp && cin.get() != ‘\n‘)a[i++] = temp; merge_sort(a, 0, n - 1); delete[] b; cout << sum << endl; return 0; }
标签:ace its 入口 cout ios i++ lse ++ 技术
原文地址:https://www.cnblogs.com/ZengWeiHao/p/10451832.html