// An highlighted block
#include<stdio.h>
#include<stdlib.h>///在时间复杂度为O(n)的情况下,把数组中的数分为左为偶数,右为奇数voidOddAndDou(int data[],int length){for(int i =0,j=length-1; i < j;){if(data[i]%2!=0&&data[j]%2!=0)
i++;elseif(data[i]%2==0&&data[j]%2==0)
j--;elseif(data[j]%2!=0&&data[i]%2==0){
int temp = data[j];
data[j]= data[i];
data[i]= temp;
j--;}else{
j--;}}}//打印
int Print(int data[],int length){for(int i =0; i < length; i++){printf("%d ",data[i]);}}//二分查找法 999表示查找失败
int Search(int data[],int i,int j,int flag){return i<=j?data[(i+j)/2]==flag?(i+j)/2:data[(i+j)/2]>flag?Search(data,i,(i+j)/2-1,flag):Search(data,(i+j)/2+1,j,flag):999;}
int main(){
int data[]={1,2,3,4,5,6,7,8,9,10,16,18,23};
int length =sizeof(data)/sizeof(int);//OddAndDou(data,length);Print(data,length);printf("\n%d ",Search(data,0,length-1,11));system("pause");return0;}