2017년 5월 25일 목요일

0525 수업 내용 : 배열탐색_선형/이진탐색

/*선형 탐색 프로그램*/
#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;
}

댓글 없음:

댓글 쓰기