728x90
반응형
#include <stdio.h>
// Binary Search Algorithm
int BSearch(int ar[], int len, int target);
int main(void)
{
int arr[] = { 1, 3, 5, 7, 9 };
int idx;
idx = BSearch(arr, sizeof(arr) / sizeof(int), 7);
if (idx == -1)
printf("Search to failed\n");
else
printf("Target Stored Index : %d \n", idx);
idx = BSearch(arr, sizeof(arr) / sizeof(int), 4);
if (idx == -1)
printf("Search to failed\n");
else
printf("Target Stored Index : %d \n", idx);
return 0;
}
int BSearch(int ar[], int len, int target)
{
int first = 0;
int last = len - 1;
int mid;
while (first <= last)
{
mid = (first + last) / 2;
if (target == ar[mid])
{
return mid;
}
else
{
if (target < ar[mid])
last = mid - 1;
else
first = mid + 1;
}
}
return -1;
}
#include <stdio.h>
// Binary Search Number of Operator
int BSearch(int ar[], int len, int target)
{
int first = 0;
int last = len - 1;
int mid;
int opCount = 0;
while (first <= last)
{
mid = (first + last) / 2;
if (target == ar[mid])
{
return mid;
}
else
{
if (target < ar[mid])
last = mid - 1;
else
first = mid + 1;
}
opCount += 1;
}
printf("Number of comparative operations : %d\n", opCount);
return -1;
}
int main(void)
{
int arr1[500] = { 0, };
int arr2[5000] = { 0, };
int arr3[50000] = { 0, };
int idx;
// Command to find unsaved integer 1 for array 1
idx = BSearch(arr1, sizeof(arr1) / sizeof(int), 1);
if (idx == -1)
printf("Search to failed\n\n");
else
printf("Target Stored Index : %d\n", idx);
// Command to find unsaved integer 2 for array 2
idx = BSearch(arr2, sizeof(arr2) / sizeof(int), 2);
if (idx == -1)
printf("Search to failed\n\n");
else
printf("Target Stored Index : %d\n", idx);
// Command to find unsaved integer 3 for array 3
idx = BSearch(arr3, sizeof(arr3) / sizeof(int), 3);
if (idx == -1)
printf("Search to failed\n\n");
else
printf("Target Stored Index : %d\n", idx);
return 0;
}
/*
Number of comparative operations : 9
Search to failed
Number of comparative operations : 13
Search to failed
Number of comparative operations : 16
Search to failed
*/
728x90
반응형
'Data Structure & Algorithm' 카테고리의 다른 글
Linked List (0) | 2022.09.10 |
---|---|
Bubble Sort Algorithm (0) | 2022.09.09 |
Sequential Data Structure (0) | 2022.09.07 |
Recursion (Factorial, Fibonacci, Tower of Hanoi) (0) | 2022.09.06 |
Linear Search (Sequential Search) Algorithm (0) | 2022.09.05 |