编程题
#includeusing namespace std;int n, s, a[100005], t[100005], i;void mergesort(int l, int r) {\tif (l == r)\t\treturn;\tint mid = (l r) / 2;\tint p = l;\tint i = l;\tint j = mid 1;\tmergesort(l, mid);\tmergesort(mid 1, r);\twhile (i <= mid && j <= r) {\t\tif (a[j] < a[i]) {\t\t\ts = mid - i 1;\t\t\tt[p] = a[j];\t\t\tp ;\t\t\tj ;\t\t}\t\telse {\t\t\tt[p] = a[i];\t\t\tp ;\t\t\ti ;\t\t}\t}\twhile (i <= mid) {\t\tt[p] = a[i];\t\tp ;\t\ti ;\t}\twhile (j <= r) {\t\tt[p] = a[j];\t\tp ;\t\tj ;\t}\tfor (i = l; i <= r; i )\t\ta[i] = t[i];}int main() {\tcin >> n;\tfor (i = 1; i <= n; i )\t\tcin >> a[i];\tmergesort(1, n);\tcout << s << endl;\treturn 0;}
输入:
6
2 6 3 4 5 1
输出:_________
发表评论 取消回复