Study/DataStructure
탐색 - Search.h / Search.c
nlogn
2010. 9. 15. 17:47
[출처 : http://inthechaos.tistory.com/entry/탐색-Searchh-Searchc]
Search.c
Search.h
//선언 int linearSearch(int *array, int size, int value); int linearSearchSort(int *array, int size, int value); int binarySearch(int *array, int size, int value);
Search.c
#pragma warning(disable:4996) #include <stdio.h>
int linearSearch(int *array, int size, int value) { int i; for(i=0; i<size; i++) { if(array[i] == value) { printf("횟수 : 성공[%d번]\n", i); return i; } } printf("횟수 : 실패[%d번]\n", i); return -1; } int linearSearchSort(int *array, int size, int value) { int i; for(i=0; i<size; i++) { if(array[i] >= value) { if(array[i] == value) { printf("횟수 : 성공[%d번]\n", i); return i; } else { break; } } } printf("횟수 : 실패[%d번]\n", i); return -1; } int binarySearch(int *array, int size, int value) { int i, left, right, middle; left = 0, right = size-1; for(i=0; left<=right; i++) { middle = (left+right) / 2; if(array[middle] == value) { printf("횟수 : 성공[%d번]\n", i); return middle; } if(array[middle] < value) { left = middle+1; } else { right = middle-1; } } printf("횟수 : 실패[%d번]\n", i); return -1; }