zoukankan      html  css  js  c++  java
  • 线性 / 顺序 查找

    在一个整型向量v中查找值a,返回相应的下标

    // lsearch.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include <iostream>
    #include <vector>
    #include <cstdlib>
    #include <ctime>
    
    using namespace std;
    
    /**
        在一个向量中找到一个元素
        @param v 要查找的元素的向量
        @param a 要查找的值
        @return  返回第一个匹配的值,如果没找到返回-1
    */
    
    int linear_search(vector<int> v, int a)
    {
        for (int i = 0; i < v.size(); i++)
        {
            if (v[i] == a)
                return i;
        }
        return -1;
    }
    
    /**
        打印向量中的所有元素
        @param a 要打印的向量
    */
    void print(vector<int> a)
    {
        for(int i = 0; i < a.size(); i++)
            cout << a[i] << " ";
        cout << "
    ";
    }
    
    /**
        设置要取的随机数的种子
    */
    void rand_seed()
    {
        int seed = static_cast<int>(time(0));
        srand(seed);
    }
    
    /**
        在一个range内计算随机数
        @param a range的底部
        @param b range的顶部
        @return 返回一个随机初始值x, a <= x 并且x <= b
    */
    int rand_int(int a, int b)
    {
        return a + rand() % (b - a + 1);
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        rand_seed();
        vector<int> v(20);
        for (int i = 0; i < v.size(); i++)
            v[i] = rand_int(1, 100);
        print(v);
        cout << "Enter number to search for: ";
        int n;
        cin >> n;
        int j = linear_search(v, n);
        cout << " Found in position " << j <<"
    ";
        system("pause");
        return 0;
    }
  • 相关阅读:
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    冒泡排序和选择排序
  • 原文地址:https://www.cnblogs.com/david-zhao/p/5073534.html
Copyright © 2011-2022 走看看