折半查找,冒泡排序

#include<iostream>
#include<stdio.h>
using namespace std;
int search(int s[],int n,int key)
{
 int low=0;int high=n-1;
 int mid;
 while(low<high)
 { mid=(low+high)/2;
 if(s[mid]==key)
  return s[mid];
 else if(s[mid]>key)
  high=mid-1;
 else
  low=mid+1;
 }if(low>high)
  return false;
}
void path(int s[],int n)
{
 int i,j;int temp;
 for(i=0;i<n;i++)
 {
  for(j=0;j<n-i-1;j++)
  {
   if(s[j]>s[j+1])
   {
    temp=s[j];
    s[j]=s[j+1];
    s[j+1]=temp;
   }
  }
 }
  for(i=0;i<n;i++)
  printf("%d",s[i]);
}
void insert(int s[],int n,int key)
{
 int i=0,temp,j;
 if(s[0]>key)
 {
  for(i=n;i>=0;i--)
     s[i+1]=s[i];
   s[0]=key;
 }
 if(s[n-1]<key)
 {
  s[n]=key;}
 
 while(i<n)
 {
 if(key>s[i]&&key<s[i+1])
 {
  for(j=n-1;j>i;j--)
  
   s[j+1]=s[j];

  s[i+1]=key;
  

 }
i++;
}

}

int main()
{
 int s[6];int key;
 int i,num;
 printf("输入5个数/n");
 for(i=0;i<5;i++)
  scanf("%d",&s[i]);
 path(s,5);
   printf("输入关键数/n");
   scanf("%d",&key);
   num=search(s,5,key);
   if(num)
   { printf("%d/n",num);}
   else
   {printf("查找失败");
   insert(s,5,key);
   for(i=0;i<6;i++)
  printf("%d",s[i]);
   }

   int tt;cin>>tt;
   return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值