#include <stdio.h>
void InsertSort(int a[],int l)
{
int temp;
int j;
for(int i=1;i<l;i++)
{
if(a[i]<a[i-1])
{
temp=a[i];
for(j=i-1;j>=0&&temp<a[j];j--)
{
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
for(int k=0;k<l;k++)
printf("%d ",a[k]);
}
int findKey(int values[], int length, int key) {
int min = 0;
int max = length - 1;
int mid = (min + max) * 0.5;
while (min <= max) {
if (values[mid] > key) {
max = mid - 1;
}else if (values[mid] < key) {
min = mid + 1;
}else {
return mid;
}
mid = (min + max) * 0.5;
}
return -1;
}
int main()
{
int a[9]={2,5,8,3,6,9,1,4,7};
int len=9;
InsertSort(a,len);
printf("\n关键字2的折半查找对应的a数组下标: %d",findKey(a,len,2));
return 0;
}