zoukankan      html  css  js  c++  java
  • 20200827--//查找特定的值(奥赛一本通 P81 9) 桶排原理

    //在一个序列,也就是数组(下标从1开始)中查找一个给定的值,输出第一次出现的位置,如果找不到,输出-1

    第一行包含一个正整数n,表示序列中元素个数。1 ≤n≤ 10000。

    第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过10000。

    第三行包含一个整数x,为需要查找的特定值。x的绝对值不超过10000。

    【输出】
    若序列中存在x,输出x第一次出现的下标;否则输出-1。

    【输入样例】
    5
    2 3 6 7 3
    3
    【输出样例】
    2

    分析:使用桶排原理,桶排原理:

       假设一个班级有5个孩子,考试成绩为5 3 2 5 8(总分10分),请按从小到大排序输出:2 3 5 5 8
       把  0-10分当成11个并排放着的桶,把分数分别放进去,然后判断
       a[0]为0,表示“0”没有出现过,不打印。
      a[1]为0,表示“1”没有出现过,不打印。
      a[2]为1,表示“2”出现过1次,打印2。
      a[3]为1,表示“3”出现过1次,打印3。
      a[4]为0,表示“4”没有出现过,不打印。
      a[5]为2,表示“5”出现过2次,打印5 5。
      a[6]为0,表示“6”没有出现过,不打印。
      a[7]为0,表示“7”没有出现过,不打印。
      a[8]为1,表示“8”出现过1次,打印8。
      a[9]为0,表示“9”没有出现过,不打印。
      a[10]为0,表示“10”没有出现过,不打印。

    #include <bits/stdc++.h>

    using namespace std;

    int a[10001];

    int n,m;
    int main()
    {

       cin>>n;  //输入元素个数

       for(int i=1;i<=n;i++)

        {

            cin>>a[i];

        }
      //上面这个循环是录入每个值

      cin>>m;//输入要查找的数

      for(int i=1;i<=n;i++)

        {

           if(a[i]==m)

             {  cout<<i<<endl;return 0;  }

        }  

        cout<<-1<<endl;

        return 0;

    }

  • 相关阅读:
    return
    debug_backtrace final catch
    Exponential Backoff
    2014 MapReduce
    Extract, Transform, Load
    Factorization of a 768-bit RSA modulus
    奇偶校验 汉明码 如果一条信息中包含更多用于纠错的位,且通过妥善安排这些纠错位使得不同的出错位产生不同的错误结果,那么我们就可以找出出错位了。 crc CRC 循环冗余校验
    An Explanation of the Deflate Algorithm
    通过极限手续定义正数的无理指数方幂
    算术根的存在唯一性
  • 原文地址:https://www.cnblogs.com/whcsrj/p/13569925.html
Copyright © 2011-2022 走看看