• 折半查找插入


    插入的经典:

    #include<stdio.h>
    #define N 1000
    int main()
    {
    void bi_search(int a[],int n,int x);
    int a[N],i,m,x;
    printf("please input the length:");
    scanf("%d",&m);
    printf("please input a[0]: ");
    scanf("%d",&a[0]);
    i=1;
    while(i<m)
    {
    scanf("%d",&a[i]);
    if(a[i]>=a[i-1])
    i=i+1;
    else printf("enter this number again: ");

    }
    for(i=0;i<m;i++) printf("%d ",a[i]);
    printf("please input the num you want search: ");
    scanf("%d",&x);
    bi_search(a,m,x);
    return 0;
    }
    void bi_search(int a[],int n,int x)
    {
    int bot=0,top=n-1,mid,find=0,i,j,t1,t2;
    do
    {

    mid=(top+bot)/2;
    if(a[mid]==x)
    find=1;
    else if (a[mid]>x)
    top=mid-1;
    else
    bot=mid+1;
    }while(find==0&&bot<=top);
    if(find==0)
    {
    printf("no search ");
    if(x>a[n-1])
    {a[n]=x;
    for(i=0;i<=n;i++)
    printf("%d ",a[i]);}

    else
    {
    for(i=0;i<n;i++)
    {
    if(a[i]>x)
    {
    t1=a[i];
    a[i]=x;
    for(j=i+1;j<n+1;j++)
    {
    t2=a[j];
    a[j]=t1;
    t1=t2;
    }
    for(i=0;i<n+1;i++)
    printf("%d ",a[i]);
    break;
    }
    }
    }
    }
    else if(find==1)
    printf("It is the %dst number ",mid);

    }

  • 相关阅读:
    Asp.Net根据角色验证
    牛客登录(四)
    外键约束
    update 和replace更新表
    每日一题力扣485
    牛客登录(6)开窗函数
    牛客登录(5)
    MySQL的UPDATE或DELETE中子查询不能为同一张表
    牛客登录(二)
    剑指offer:二分
  • 原文地址:https://www.cnblogs.com/SSYYGAM/p/4212482.html
Copyright © 2020-2023  润新知