折半查找
#include<stdio.h>
int BinSearch(int arr[],int len,int key)
{
int low=0;//起始下标
int high=len-1;//结尾下标
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(arr[mid]==key)
{
return mid;
}
else if(arr[mid]<key)//在右边查找
{
low=mid+1;
}
else//在左边查找
{
high=mid-1;
}
}
return-1;//查找不到返回1
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",BinSearch(arr,sizeof(arr)/sizeof(arr[0]),4));
for(int i=0;i<=sizeof(arr)/sizeof(arr[0]);i++)
{
printf("%d\n",BinSearch(arr,sizeof(arr)/sizeof(arr[0]),i));
}
}
正序输出
#include<stdio.h>
void show(int arr[],int len)
{
for(int i=0;i<len;i++)
{
printf("%d\n",arr[i]);
}
}
int main()
{
int arr[]={1,2,3,45};
show(arr,sizeof(arr)/sizeof(arr[0]));
}
倒序输出
#include<stdio.h>
void Reverse(int arr[],int len)
{
int tmp;
for(int i=0;i<len/2;i++)
{
tmp=arr[i];
arr[i]=arr[len-i-1];
arr[len-i-1]=tmp;
}
}
int main()
{
int arr[]={1,2,3,4,5,6,7};
Reverse(arr,sizeof(arr)/sizeof(arr[0]));
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("%d",arr[i]);
}
return 0;
}