CS50, pset3 찾기에 대한 선택 정렬을 수행 한 후 2 진 검색을 구현하려고합니다.바이너리 검색 및 정렬 - CS50 찾기 pset3
내 논리가 맞다고 생각하지만 내 코드가 어디에 잘못되었는지 알 수 없습니다. 아래는 제 코드입니다.
#include <cs50.h>
#include "helpers.h"
#define RANGE 65536
/**
* Returns true if value is in array of n values, else false.
*/
bool search(int value, int values[], int n)
{
// TODO: implement a searching algorithm
//binary search
int midpoint = ((0 + (n-1))/2);
while (n > 0)
{
if (value == values[midpoint])
{
return true;
}
else if (value < values[midpoint]){
midpoint = ((0 + (midpoint-1))/2);
}
else if (value > values[midpoint]){
midpoint = (((midpoint+1) + (n-1))/2);
}
if (value != values[midpoint])
{
return false;
}
}
return false;
}
/**
* Sorts array of n values.
*/
void sort(int values[], int n)
{
// TODO: implement a sorting algorithm
//selection sort
for (int i = 0; i < n; i++)
{
int min = i;
for (int j = i+1; j < n; j++)
{
if(values [j]< values[min])
{
min = j;
}
if(min != i)
{
int exchange = values [min];
values [min] = values [i];
values [i] = exchange;
}
}
}
return;
}
는 기본적으로, 나는 내 논리가 대부분 올바른 생각하지만, 다시, 나는 너무 확실하지 않다. 나는 아직 초보자이므로 때로는 가장 간단한 오류에 휘말리게됩니다. 도움을 주시면 대단히 감사하겠습니다.
보고 된 첫 번째 오류로 시작하십시오. 고쳐. 다음 오류 중 하나라도 고칠 수 있는지 확인하십시오. 그러나 첫 번째 오류의 결과 일 수 있습니다. 할 수있는 일을 고쳤으며, 재 컴파일하고, 남은 오류를 동일한 체계적인 방식으로 작업하십시오. –