下面是我在Java上编写的代码,用于从文本文件中读取100000个整数并使用合并排序对其进行排序。
问题:
程序无法正确计算倒数,我不知道问题出在哪里?
我在此数组long [] arrayB = {4,3,2,1,1,8,7,5,3,6}上测试我的代码。它显示了15的20个反转。
vertex_dendrogram = friend_graph_based_on_votes.community_fastgreedy()
print(vertex_dendrogram)
//ПолучимотсортированныймассивметодомСлияния
BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\Nick\\Desktop\\ArrayInt.txt"));
long[] arrayA = new long[100_000];
int i = 0;
while (reader.readLine() != (null)) {
arrayA[i] = Long.parseLong(reader.readLine());
i++;
}
reader.close();
long[] arrayB = {4, 3, 2, 1, 8, 7, 5, 3, 6 };
long invb = getMergeSort(arrayB);
long testInvB = simpleInvCount(arrayB);
System.out.println(invb);
System.out.println(testInvB);
System.out.println( (float) testInvB / invb);
}
public static long simpleInvCount(long [] A){
long invCount = 0;
for (int i = 0; i < A.length; i++){
for (int j = 0; j < i; j++){
if (A[i] < A[j])
invCount++;
}
}
return invCount;
}
}
在此数组上,long [] arrayB = {4,3,2,1,8,8,7,5,3,6}我希望输出为15,但实际输出为20。