线性搜索

一、问题:线性搜索某个数是否存在。

二、代码

#include <iostream>
using namespace std;

int main()
{
    int A[] = { 9, 2, 8, 6, 7, 1, 4, 5, 3, 0 };
    int target=11;
    bool found = false;
    for (int i = 0; i < 10; i++)
    {
        if (target == A[i])
        {
            cout << "I have found it. The num is:" << i;
            found = true;
            break;
        }
    }
    if (found == false)
    {
        cout << "sorry! i can not found it!";
    }
    return 0;
}
时间: 2024-07-30 20:41:28

线性搜索的相关文章

Java入门:基础算法之线性搜索

本程序使用线性搜索算法从n个数中查找一个数. /* Program: 线性搜索示例 * @author: 理工云课堂 * Input: 元素个数,每个元素值,待查找数据的值 * Output:待查找数的位置*/ import java.util.Scanner; class LinearSearchExample { public static void main(String args[]) { int counter, num, item, array[]; //捕获用户输入 Scanner

JavaScript中数组元素的线性搜索

线性搜索:将给定的数组元素一个接一个的与我们需要查找的元素进行比较. 示例:1.该示例通过prompt()函数实现用于输入需要查找的元素. 2.给定一组数组元素 3.将查询结果通过set_innerHTML()函数输出到指定页面标签内. (注:set_innerHTML()函数弥补JavaScript的innerHTML属性,JavaScript的innerHTML属性不能进行网页交互时输出.即网页交互时使用innerHTML属性JavaScript程序无响应.) <!doctype html>

Line Search and Quasi-Newton Methods 线性搜索与拟牛顿法

Gradient Descent 机器学习中很多模型的参数估计都要用到优化算法,梯度下降是其中最简单也用得最多的优化算法之一.梯度下降(Gradient Descent)[3]也被称之为最快梯度(Steepest Descent),可用于寻找函数的局部最小值.梯度下降的思路为,函数值在梯度反方向下降是最快的,只要沿着函数的梯度反方向移动足够小的距离到一个新的点,那么函数值必定是非递增的,如图1所示. 梯度下降思想的数学表述如下: b=a−α∇F(a)⇒f(a)≥f(b)(1)(1)b=a−α∇F

有序线性搜索(Sorted/Ordered Linear Search)

如果数组元素已经排过序(升序),那我们搜索某个元素就不必遍历整个数组了.在下面给出的算法代码中,到任何一点,假设当前的arr[i]值大于搜索的值data,就可以停止搜索了. #include<stdio.h> // a function to search "data" in an array "arr" of size "size" // returns 1 if the element is present else 0 int

其实 两分搜索 和 线性搜索 差距没那么大

测了一下两分搜索 和 线性搜索的运行时间,用的都是由小到大排序好的数组,搜最大的数 线性搜索   数组大小 运行时间(s) 10000 0.01 100000 0.02 1000000 0.07 10000000 0.5 两分搜索   数组大小 运行时间(s) 10000 0.01 100000 0.015 1000000 0.05 10000000 0.3 代码如下: def sequentialSearch(a, item): for i in a: if i == item: return

线性搜索简介

Numerical Optimization Line Search 数值优化是迭代式的优化方法,从一个初始点x0开始,然后产生一个迭代方向?d0,在这个方向上选择一个步长α0,下一个点就是x0+α0??d0. 按照这样的方法不停的迭代下去,直到找到最优点.在这个过程中有两步是非常重要的.第一步就是计算出迭代方向?dk,第二步是在这个方向上选择合适的步长 αk,获得下一个点xk+1. 第一步产生迭代方向 ?dk 是各种优化方法产生差别的地方,不同的方法有不同的方法生成迭代方向.但是对于不同的迭代

优化学习率 - 1 - 回溯线性搜索和二次插值线性搜索

本章总结优化学习率的知识,而前置知识就是"线性回归.梯度下降算法",因此如果这一章你看的云里雾里甚至连学习率是什么都不知道的话就需要先吧前置知识搞定了. 其他说明 因为本总结的前置知识是"线性回归.梯度下降算法",所以之后的内容都是以"求目标函数f(x)的极小值"为目的. 不过不用担心求极大值的话该怎么办,因为直接给f(x)加个负号就将问题转换为了求极小值问题了. 在顺便一提,个人感觉正因为研究了这么多求极小值的东西,于是大伙为了省事,就凡是遇到

无序线性搜索(Unordered Linear Search)

假定有一个元素顺序情况不明的数组.这种情况如果我们要搜索一个元素就要遍历整个数组,才能知道这个元素是否在数组中. 这种方法要检查整个数组,核对每个元素.下面是算法实现: #include<stdio.h> // a function to search "data" in an array "arr" of size "size" // returns 1 if the element is present else 0 int un

《斯坦福大学:编程范式》第5节1:void*类型的使用:一个兼容所有类型的线性搜索

void* lsearch( void *key, void *base, int n, int elemSize , int  (*compare)(void* a, void* b))  //这里使用函数指针 { for(int i = 0; i< n; i++) { //这里 使用了一个hack, (char*)base 迫使 后面的+的 i*elemSize 变成char型, 也就是  i*elemSize* typeof(char) //第二个hack 是 返回值为void*,comp