函数:折半查找与数组的逆置

来源:互联网 发布:广东工业大学矩阵分析 编辑:程序博客网 时间:2024/06/05 12:43

实现一个函数,完成一维数组元素的逆置

#include <stdio.h> void reverse(int arr1[],int n){  int i=0;  int tmp=0;  for(i=0; i<(n/2); i++)  {     tmp=arr1[i];     arr1[i]=arr1[n-i-1];    arr1[n-i-1]=tmp;  }   printf("逆置后的数组为:\n");  for(i=0; i<n; i++)  {    printf("arr[%d]=%d ",i, arr1[i]);    printf("\n");  }printf("\n");}int main(){   int i=0;    int p=0;    int arr[10]={0};    p=sizeof(arr)/sizeof(arr[0]);    printf("请输入数组arr[10]中的元素:\n");    for(i=0; i<p; i++)    {        scanf("%d", &arr[i]);    }    printf("\n");    reverse(arr,p);    printf("\n");       return 0;}

实现一个折半查找的函数,找到返回其下标,找不到输出“找不到”

#include "stdio.h"int cha_zhao(int arr1[],int len,int key){    int left=0;    int right=len-1;    while(left<=right)    {        int mid=left+(right-left)/2;        if(arr1[mid]=key)        {            return key;        }        else if(arr1[mid]<key)        {            left=mid+1;        }        else        {            right=mid-1;        }    }    return -1;}int main(){    int sz=0;    int p=0;    int arr[]={1,2,3,4,5,6,7,8,9,10};    int num=0;    printf("请输入你想找的数:\n");    scanf("%d",&num);    sz=sizeof(arr)/sizeof(arr[0]);    p=cha_zhao(arr,sz,num);    if(p==-1)        printf("找不到\n");    else        printf("其下标元素为:%d\n",p);    return 0;}
原创粉丝点击