您的位置:首页 > 编程语言 > C语言/C++

c语言基础知识--基本的查找算法实现

2018-03-29 23:26 369 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐