折半查找的递归实现与qsort
2013-08-18 21:52
120 查看
#include<stdio.h> #include<stdlib.h> int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int Search(int *a,int low,int high,int key){ int mid=(low+high)/2; if(low<=high) { if(a[mid]==key) return mid; if(a[mid]<key) return Search(a,low,mid-1,key); return Search(a,mid+1,high,key); } } int main() { int *a; int n,i,key; printf("请输入表元素个数\n"); scanf("%d",&n); a=(int *)malloc(n*sizeof(int)); for(i=0;i<n;i++) { scanf("%d",&a[i]); } qsort(a,n,sizeof(a[0]),cmp); printf("从小到大排序如下:\n"); for(i=0;i<n;i++) { printf("%d ",a[i]); } puts(""); printf("输入您要查找的元素:\n"); scanf("%d",&key); printf("您要查找的元素在第%d个位置:\n",Search(a,0,n-1,key)+1); system("pause"); return 0; }
相关文章推荐
- Java实现折半查找(二分查找)的递归和非递归算法
- 折半查找的递归和非递归实现
- 递归实现折半查找
- 折半查找的递归与非递归方法实现
- 折半查找(递归)——ANSI C实现
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- 折半查找的递归实现和非递归实现
- 二分搜索算法(折半查找)原理以及递归(recuition),迭代(iteration)的两种实现源代码
- 利用递归实现折半查找
- 折半查找的递归和非递归实现(C++)
- 折半查找(非递归与递归实现)
- 【转】Java实现折半查找(二分查找)的递归和非递归算法
- C#实现折半查找(递归,非递归)
- 折半查找递归实现
- 递归4: 折半查找的递归实现
- 二分搜索算法(折半查找)原理以及递归(recuition),迭代(iteration)的两种实现源代码
- 折半查找的递归实现
- Java实现折半查找(二分查找)的递归和非递归算法
- Java代码实现一维数组的二分查找(折半查找)(非递归方法)