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;
    }
  • 相关阅读:
    数组
    原生获取 键盘 keycode 鼠标 键码
    javascript 拖拽
    简单的鼠标拖拽
    vue中格式化时间戳
    使用koa+angular+mysql 完成了一个企业站
    koa2+mysql5+angularjs1 搭建前后端全栈项目
    javascript利用闭包实现迭代器轮询数组中的元素
    AngularJS 1.x版本 学习教程
    改变,从羡慕别人开始
  • 原文地址:https://www.cnblogs.com/david-zhao/p/5073534.html
Copyright © 2011-2022 走看看