• 选择排序+二分查找


    输入整数个数n,在输入n个整数,先进行选择排序,再用二分查找找到它所在的位置。

    代码:

    #include<stdio.h>
    void px(int num[],int n) //选择排序
    {
      int i,j,flag,term;
      for(i=0; i<n-1; i++)
      {
        flag=i;
        for(j=i+1; j<n; j++)
          if(num[j]<num[flag])
            flag=j;
          term=num[i];
          num[i]=num[flag];
          num[flag]=term;
       }
       for(i=0;i<n;i++)
         printf("%d ",num[i]);
       printf(" ");
    }
    void ef(int a[],int n,int x) //二分查找
    {
      int bot=0,top=n-1,mid,find=0;
      do
      {
        mid=bot+(top-bot)/2;
        if(a[mid]==x)
          find=1;
        else if(a[mid]<x)
          bot=mid+1;
        else
          top=mid-1;
      }while(find==0 && bot<=top);
      if(find==1)
        printf("%d ",mid+1);
      else
        printf("cannot find! ");
    }
    int main()
    {
      int num[1000],n,i,x;
      scanf("%d",&n); //输入整数个数
      for(i=0; i<n; i++) //输入这n个数
        scanf("%d",&num[i]);
      scanf("%d",&x); //输入要查找的数
      px(num,n);
      ef(num,n,x);
      return 0;
    }

  • 相关阅读:
    [YTU]_2436( C++ 习题 输出日期时间--友元类)
    [YTU]_2435 ( C++ 习题 输出日期时间--友元函数)
    病毒侵袭
    石子合并(区间DP经典例题)
    AC自动机模板2
    【模板】最近公共祖先(LCA)
    华华给月月出题
    线性筛素数
    华华开始学信息学
    华华和月月种树
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/4214968.html
Copyright © 2020-2023  润新知