#include <stdio.h>
#include <stdlib.h>
/**
*作者: 朱国柱
*时间: 2018/3、/29
*内容:简单的查找算法实现
*/
//顺序查找算法实现
int search01(int arr[], int e){
int i;
for (i = 0; i < 5; i++) {
if (e == arr[i]){
return i;
}
}
return -1;
}
//二分查找算法实现(非递归)
int search02(int arr[], int e){
int low = 0;
int high = 4;
int mid;
while (low <= high) {
mid = (low+high)/2;
if (arr[mid] > e) {
high = mid-1;
} else if (arr[mid] < e) {
low = mid+1;
} else {
return mid;
}
}
return -1;
}
//二分查找算法实现(递归)
int search03(int arr[], int e, int low, int high){
int mid;
if (low > high) {
return -1;
}
mid = (low+high)/2;
if (arr[mid] > e ) {
return search03(arr, e, low, mid-1);
} else if (arr[mid] < e) {
return search03(arr, e, mid+1, high);
} else {
return mid;
}
}
int main(){
int arr[5] = {1, 4, 5, 2, 3};
printf("%d\n", search01(arr, 4));
printf("%d\n", search02(arr, 4));
printf("%d\n", search03(arr, 4, 0, 4));
return 0;
}
c语言基础知识--基本的查找算法实现
最新推荐文章于 2021-05-19 11:55:56 发布