일부 숫자와 숫자의 양을 감안할 때 오름차순으로 정렬 한 다음 패스 및 스왑의 수를 출력해야합니다. 왜 작동하지 않는거야? 또한이 문제에 벡터를 사용하고 싶습니다. 벡터를 함수에 전달하고 올바르게 호출하고 있습니까?버블 정렬이 작동하지 않는 이유는 무엇입니까
//bubble Sort
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
bool isSorted(std::vector<int> & myData);
int main()
{
std::vector<int> myData;
int length = 0;
int pass = 0;
int swap = 0;
cin >> length;
int x = 0;
for(x; x < length; x++)
{
int input = 0;
cin >> input;
myData.push_back(input);
}
x = 1;
while(!isSorted(myData))
{
int trash = 0;
for(x; x < length; x++)
{
if(myData[x] < myData[x-1])
{
trash = myData[x];
myData[x] = myData[x-1];
myData[x-1] = trash;
swap++;
}
}
pass++;
}
cout << pass << " " << swap;
return 0;
}
bool isSorted(std::vector<int> & myData)
{
for(int i = 1; i < myData.size(); i++)
{
if(myData[i] < myData[i-1])
{
return false;
}
}
return true;
}
? 원하는 결과물을 출력 할 수 있습니까? –
'for (x; x <길이; x ++)'데이터를 한 번 생각한 다음 처음에는'x'를 다시 설정하지 마십시오 (색인 생성을 위해서가 아니라 0부터 시작해야합니다)'for (x = 0, x
infixed
내가 할당을 제출해야하는 환경에 내 코드를 복사 할 때 컴파일러가 아무 것도 출력하지 않습니다. 아무것도. 이제 생각해 보면, 거품 정렬이 작동하지 않더라도 패스와 스왑이 0으로 초기화되었으므로 여전히 2 개의 0을 제공해야합니다. 내 컴파일러가 작동하지 않기 때문에 환경을 사용해야 만합니다. 어떤 제안? – Redefender