/*선형 탐색 프로그램*/
#include <iostream>
using namespace std;
int lineSearch(const int list[],int key,int size);
int main(){
int const SIZE = 6;
int list[] = {6,4,1,9,7,3,2,8};
int i = lineSearch(list,3,SIZE);
cout<<i<<endl;
return 0;
}
int lineSearch(const int list[],int key,int size)
{
for(int i=0;i<size;i++)
{
if(key==list[i])
return i;
}
return -1;
}
/*이진 탐색 프로그램*/
#include <iostream>
using namespace std;
int binarySearch(const int list[],int key,int arraySize);
int main(){
int list[] = {2,4,7,10,15,16,19,20,27,56,59,80};
int i = binarySearch(list,80,20);
cout<<i<<endl;
return 0;
}
int binarySearch(const int list[],int key,int arraySize)
{
int low = 0;
int high = arraySize-1;
while(high>=low)
{
int mid = (low+high)/2;
if(key < list[mid])
high = mid - 1;
else if(key == list[mid])
return mid;
else
low = mid + 1;
}
return low - 1;
}
댓글 없음:
댓글 쓰기