순차검색과 이진 검색 값이 안나옵니다.
뚜야
질문 제목 : 순차검색과 이진 검색 값이 안나옵니다.
순차검색과 이진검색 모두 구현을 했는데 값이 제대로 나오지가 않습니다.
제 생각이지만 리턴값에서 값이 제대로 전달이 안되는거 같기도 하고 어디서 잘못된건지 알수가 없습니다.
질문 내용 : 잘못된 부부좀 수정 지적좀 해주세요..
int seqserach(int list[], int last, int target);
int main()
{
int list[] = {5,6,3,1,4,2};
int target2 = 0;
int last = 0;
int i = 0;
int rst;
last = sizeof(list)/sizeof(int);
printf(list );
for(i =0; i last; i++)
{
printf([%d] , list[i]);
}
printf(\n);
target2 = 3;
rst = seqserach(list, last, target2);
printf(target의 인덱스 값은 : %d \n, rst);
}
int seqserach(int list[], int last, int target)
{
int looker;
looker = 0;
while(looker last && target != list[looker])
looker++;
printf(타겟 : %d \n,target);
printf(리스트 락커 : %d\n,list[looker]);
printf(락커 : %d \n,looker);
printf(\n);
return (target == list[looker]);
}
-------------------------------------------------- // 여기까지 순차 검색입니다.
int binaryserach(int list[], int end, int target);
void main()
{
int list[] = {5,6,3,1,4,2};
int i, j, temp;
for(i = 0; i 6; i++)
{
for(j = i; j 6; j++)
{
if(list[i] list[j])
{
temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
for(i = 0; i 6; i++)
{
printf(%d ,list[i]);
}
printf(%d,binaryserach(list, 6, 4));
}
int binaryserach(int list[], int end, int target)
{
int first;
int mid;
int last;
first = 0;
last = end;
while(first = last)
{
mid = (first + last)/2;
if(target list[mid])
{
first = mid + 1;
}
else if(target list[mid])
{
last = mid - 1;
}
else
{
first = last + 1;;
}
}
return target == list[mid];
}