【发布时间】:2018-04-18 22:31:08
【问题描述】:
在 Hackerearth 中,我尝试解决冒泡排序交换计数问题。而且我的输出总是与正确的输出不同。例如;
我的输出是 2475,正确的输出是 2788
#include <iostream>
using namespace std;
int main()
{
int *A,tm,times=0;
cin >> tm;
A = new int[tm];
for(int i = 0; i<tm;i++) {cin >> A[i];}
int temp;
for(int i = 0; i<tm;i++){
for(int j = 0; j < tm-i-1;j++){
if(A[j] > A[j+1]){
times++;;
temp = A[j];
A[j] = A[j+1];
A[j] = temp;
}
}
}
cout << times;
return 0;
}
我做错了什么还是正确的输出有误?
【问题讨论】:
-
独立于你得到的输出差异,因为你使用的是 C++,我强烈建议使用 std::vector 而不是原始数组和 std::swap 而不是滚动你自己的。这减少了代码的表面积,并可能消除您在此处可能遇到的任何小错误。
-
欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。您的帖子有两个问题:(1)它需要输入; (2) 你没有提供测试用例。硬编码案例并完成发布。
标签: algorithm swap bubble-sort counting counting-sort