实验保存

#include<stdio.h>
#include<malloc.h>
#include<algorithm>
#include<iostream>
using namespace std;
struct node{
  int *elem;
  int length;
};
node a;
int f,p;
void order_find(int x){
  int flag=0;
  int pos=-1;
  for (int i=0;i<a.length;i++){
     if(a.elem[i]==x){
        flag=1;
        pos=i+1;
        break;
     }
  }
  if (flag){
    printf("存在这个数,第一个的位置在%d\n",pos);
  }else{
    printf("不存在这个数");
  }
}
void erfen_find(int l,int r,int data){
     int mid=(l+r)/2;
     if(a.elem[mid]==data){
        f=1;
        return;
     }
     if(l==r){
        if(a.elem[mid]==data)f=1;
        return;
     }
     if(a.elem[mid]<data){
       erfen_find(mid+1,r,data);
     }else {
       erfen_find(l,mid,data);
     }
}
int main(){
  int n,num;
  f=0;
  while(~scanf("%d",&n)){
  f=0;
  a.elem=(int*)malloc(100*sizeof(int));
  for (int i=0;i<n;i++){
    scanf("%d",&a.elem[i]);
  }
  a.length=n;
  printf("请输入要查找的数字");
  scanf("%d",&num);
  printf("按照顺序查找:");
  order_find(num);
  sort(a.elem,a.elem+a.length);
  erfen_find(0,a.length-1,num);
  printf("按照二分查找:");
  if (f){
    printf("查找到这个数\n");
  }else {
    printf("不存在这个数\n");
  }
  }
  return 0;
}
View Code

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值