一、效果图
二、源代码
#include<stdio.h>
#define N 9
/*
@author
*/
//一维有序数组查找(二分查找法/折半查找法)
int binsearch(int a[], int start, int end, int x){
if (start > end){ //没有元素
return -1;
}
else if (start == end) { //只有一个元素
if (a[start] == x){
return start;
}
else{
return -1;
}
}else{ //多个元素
int mid = (start + end) / 2; //中间的位置 (二分法)
if (a[mid] == x){
return mid;
}
else if (x > a[mid]){ //右边
return binsearch(a, mid+1,end, x);
}
else{ //左边
return binsearch(a, start, mid -1, x);
}
}
}
int partition(int a[], int atrat, int end){ //划分,返回划分基准点
return 0;
}
void main(){
int a[] = { 1, 4, 5, 6, 9, 11, 12, 18, 23 };
int x; //被查找的数
scanf_s("%d", &x);
printf("%d\n", binsearch(a, 0, N - 1, x));
}