안녕하세요 저는 정수 배열을 가진 간단한 프로그램을 작성하고 배열에서 가장 자주 나타나는 숫자를 결정합니다.bin 검색을 사용하여 정렬 된 배열의 모드 찾기
내가 채택하려고하는 접근 방식은 빈 검색 알고리즘을 사용하는 버블 정렬을 사용하는 것입니다. 내 수준의 지식은 초보자 단계에서 누군가 나를 도울 수 있습니까?
어디에서 잘못 가고 있는지 정확한 배열을 찾기 위해 검색 값을 전달하는 것입니다! 하지만 어쩌면 틀렸을 지 모르지만 도움을 청할 시간이 필요하신 분을 미리 감사드립니다.
#include <iostream>
using namespace std;
const int arrayLength = 10;
int searchVal;
int numGroup[arrayLength];
bool isSorted(int [], int arrayLength);
int binSearch(int [],int arrayLegth,int searchVal);
int main()
{
// Take in num
for (int index = 0; index < arrayLength; index++)
{
cout << "Enter Number: ";
cin >> numGroup[index];
}
// Sort numbers
//var to hold the val being swaped
int swapHolder = 0;
//bubble sort
for (int iSort = 0; iSort < arrayLength; iSort++)
{
for (int jSort = (iSort + 1); jSort <= arrayLength - 1; jSort++)
{
if (numGroup[iSort] > numGroup[jSort])
{
swapHolder = numGroup[iSort];
numGroup[iSort] = numGroup[jSort];
numGroup[jSort] = swapHolder;
}
}
}
//passes the sorted array and the length to the isSorted
isSorted(numGroup, arrayLength);
return 0;
}
bool isSorted(int numGroup[], int arrayLength){
cout << "Final result" << endl;
for (int index = 0; index < arrayLength - 1 ; index++)
{
if (numGroup[index] > numGroup[index + 1])
{
cout << "it's false";
system("pause");
return false;
}
cout << numGroup[index] << endl;
//cout << arrayLength << endl;
}
cout << numGroup[arrayLength - 1] << endl;
//trying to make searchVal
for (int i = 0; i < numGroup[arrayLength - 1]; i++)
{
if (numGroup[i] == numGroup[i])
{
int searchVal = numGroup[i];
}
}
binSearch(numGroup, arrayLength, searchVal);
cout << "It's true ";
system("pause");
return true;
}
int binSearch(int numGroup[], int arrayLength,int searchVal){
int low = 0;
int high = arrayLength - 1;
int mid;
while (low <= high)
{
mid = (low + high)/2;
//search through the array
if (searchVal == numGroup[mid])
{
return mid;
}
else if (searchVal > numGroup[mid])
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
cout << "In bin search " << mid;
return mid;
}
당신은'표준 : sort'하여 buble 종류를 대체 할 수있어 바랍니다. – Jarod42
검색 할 내용이 없습니다. 정렬 된 배열의 각 반복 숫자 시퀀스의 길이를 센다. 그런 다음 가장 긴 것을 찾습니다. – felix
나는이 문제를 더 복잡하게하는 경향이있다. 이것은 더 쉽고 간단한 방법으로 해결할 수 있다고 생각한다. – Cerberus