《趣题学算法》 Get The Inversion 计算逆序数
// // Get The Inversion.cpp // laboratory // // Created by 徐子珊 on 15/12/22. // Copyright © 2015年 xu_zishan. All rights reserved. // #include <fstream> #include <iostream> #include <vector> using namespace std; //#include "filepath.h" int getTheInversion(vector<int> A){ int N = int(A.size()); int count = 0; for (int j = N - 1; j > 0; j--) for (int i = 0; i < j; i++) if (A[i] > A[j]) count++; return count; } int main() { //string basePath = "C:\\Users\\Administrator\\source\\repos\\Project2\\Project2"; ifstream inputdata("inputdata.txt"); ofstream outputdata("outputdata.txt"); int N = 0; inputdata >> N; while (N > 0) { vector<int> A(N); for (int i = 0; i < N; i++) inputdata >> A[i]; int result = getTheInversion(A); cout << result << endl; outputdata << result << endl; inputdata >> N; } inputdata.close(); outputdata.close(); return 0; }
1 2 3 这3个数从小到大依次排列,逆序数为0
2 1 这2个数逆序排列,逆序数为1
3 2 4 1 5 这5个数逆序排列组为【32】 【31】 【21】 【41】 ,逆序数为4
本书使用了ifstream、ofstream文件处理方法。
为了摆脱文件,可以使用控制台输入输出。
Notes:知识点滴积累,转载注明出处。