Java教程

算法分析:在一个一维整型有序数组中进行查找,编程完成二分查找法。

本文主要是介绍算法分析:在一个一维整型有序数组中进行查找,编程完成二分查找法。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、效果图

二、源代码

#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));
}

这篇关于算法分析:在一个一维整型有序数组中进行查找,编程完成二分查找法。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!