Long time no see
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#include "head.h"
|
||||
|
||||
int linear_Search(int *arr, int n, int key) {
|
||||
for (int i = 0; i < n; i++)
|
||||
if (arr[i] == key) return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int exponential_Search(int *arr, int n, int key) {
|
||||
int a = 1;
|
||||
while (a < n && arr[a - 1] < key)
|
||||
a *= 2;
|
||||
|
||||
int low = a / 2;
|
||||
int high = (a < n) ? a : n;
|
||||
|
||||
while (low <= high) {
|
||||
int mid = low + (high - low) / 2;
|
||||
if (arr[mid] == key) return mid;
|
||||
if (arr[mid] < key) low = mid + 1;
|
||||
else high = mid - 1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int binary_Search(int *arr, int n, int key) {
|
||||
int low = 0;
|
||||
int high = n - 1;
|
||||
while (low <= high) {
|
||||
int mid = low + (high - low) / 2;
|
||||
if (arr[mid] == key) return mid;
|
||||
if (arr[mid] < key) low = mid + 1;
|
||||
else high = mid - 1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
Reference in New Issue
Block a user