#include <stdio.h>
#include <stdlib.h>
void Copy(int a[],int b[],int len,int state){
if(state==1){
for(int i=0;i<len;i++){
b[i+1]=a[i];
}
}
else if(state==2){
for(int i=0;i<len;i++){
a[i]=b[i+1];
}
}
else{
for(int i=0;i<len;i++){
a[i]=b[i];
}
}
}
void Sort(int array[],int index[],int len){
for(int i=0;i<len-1;i++){
for(int j=len-1;j>i;j--){
if(array[j-1]>array[j]){
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
temp=index[j];
index[j]=index[j+1];
index[j-1]= temp;
}
}
}
}
int Find(int array[],int len,int target){
int high=len-1;
int low=0;
int min=(low+high)/2;
int index=-1;
while(low<=high){
if(low==high){
index=low;
break;
}
min=(low+high/2)<high?(low+high/2):high;
index=min;
if(array[min]==target){
break;
}
else if(array[min]<target){
index=(min+1)+high/2;
low=min+1;
}
else if(array[min]>target){
index=low+(min-1)/2;
high=min-1;
}
}
return index;
}
int FindInArray(int arr[],int len,int target){
int a[len];
int index[len];
Copy(a,arr,len,3);
for(int i=0;i<len;i++){
index[i]=i;
}
Sort(a,index,len);
int result=Find(a,len,target);
return index[result];
}
int main(){
int a[]={85, 63, 52, 34, 25, 17, 6};
int index=FindInArray(a,sizeof(a)/sizeof(int),6);
printf("所在的下标是:%d",index);
return 0;
}