C ++中的线性搜索

Here you will get program for linear search in C++.

在这里,您将获得使用C ++进行线性搜索的程序。

In linear search algorithm, we compare targeted element with each element of the array. If the element is found then its position is displayed.

在线性搜索算法中,我们将目标元素与数组的每个元素进行比较。 如果找到该元素,则显示其位置。

The worst case time complexity for linear search is O(n).

线性搜索的最坏情况时间复杂度为O(n)。

C ++中的线性搜索程序 (Program for Linear Search in C++)

#include<iostream>
 
using namespace std;
 
int main()
{
	int a[20],n,x,i,flag=0;
	cout<<"How many elements?";
	cin>>n;
	cout<<"\nEnter elements of the array\n";
	
	for(i=0;i<n;++i)
		cin>>a[i];
	
	cout<<"\nEnter element to search:";
	cin>>x;
	
	for(i=0;i&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是两个 Matlab 程序,一个是不精确线性搜索算法,另一个是使用 DFP 算法和 Wolfe 性非线性搜索解决无约束问题的程序: 不精确线性搜索算法: ```matlab function [x, fx, n] = inexact_line_search(f, x0, d, alpha, rho, c) % f: 目标函数 % x0: 初始点 % d: 搜索方向 % alpha: 初始步长 % rho: 步长缩小比例 % c: Armijo准则常数 % x: 最优解 % fx: 目标函数在最优解处的值 % n: 迭代次数 if nargin < 4 alpha = 1; end if nargin < 5 rho = 0.5; end if nargin < 6 c = 1e-4; end n = 0; while true x = x0 + alpha * d; fx0 = feval(f, x0); fx = feval(f, x); if fx <= fx0 + c * alpha * (d' * grad(f, x0)) break; end alpha = rho * alpha; n = n + 1; end ``` DFP 算法和 Wolfe 性非线性搜索解决无约束问题: ```matlab function [x, fx, n, alpha] = dfp_wolfe(f, x0, eps, max_iter) % f: 目标函数 % x0: 初始点 % eps: 精度要求 % max_iter: 最大迭代次数 % x: 最优解 % fx: 目标函数在最优解处的值 % n: 迭代次数 % alpha: 步长 if nargin < 3 eps = 1e-6; end if nargin < 4 max_iter = 1000; end n = 0; x = x0; H = eye(length(x)); while true fx = feval(f, x); g = grad(f, x); if norm(g) < eps break; end d = -H * g; [alpha, nls_n] = wolfe(f, x, d); n = n + nls_n; s = alpha * d; x1 = x + s; y = grad(f, x1) - g; H = H + (s * s') / (s' * y) - (H * y * y' * H) / (y' * H * y); x = x1; n = n + 1; if n > max_iter break; end end ``` 其,grad 函数是计算梯度的函数,wolfe 函数是 Wolfe 性非线性搜索的函数。你需要自己实现这两个函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值