OJ.【二分】就是看看这个方法就好

来源:互联网 发布:平面设计软件 编辑:程序博客网 时间:2024/06/05 21:50

写这个,主要是为了理解这个思想,题目无关紧要。

#include <stdio.h>#include <stdlib.h>int a[20];int n=15;int main(){void quicksort(int left,int right);void research(int start,int end);int i;for(i=1;i<=n;i++){scanf("%d",&a[i]);}quicksort(1,n);research(1,n);return 0;}void quicksort(int left,int right){if(left>right)return;int i,j,t,temp;temp=a[left];i=left;j=right;while(i!=j){while(a[j]<=temp && i<j)j--;while(a[i]>=temp && i<j)i++;if(i<j){t=a[i];a[i]=a[j];a[j]=t;}}a[left]=a[i];a[i]=temp;quicksort(left,i-1);quicksort(i+1,right);}void research(int start,int end){int mid;int m;scanf("%d",&m);while(start<=end){mid=(start+end)/2;if(m==a[mid])//这句话一定要写在循环里面,不要写在外面;{printf("%d\n",mid);break;}    else if (m>a[mid]){end = mid - 1;}else{start = mid + 1;}}printf("wucishu!\n");}


0 0
原创粉丝点击