Căutarea secvențială este unul dintre cei mai simpli algoritmi studiați. El urmărește să verifice apartenența unui element la un șir de elemente de aceeași natură, în speță a unui număr la un șir de numere. Pentru aceasta se parcurge șirul de la un capăt la celălalt și se compară numărul de căutat cu fiecare număr din șir. În cazul în care s-a găsit corespondență (egalitate), un indicator flag este poziționat. La sfârșitul parcurgerii șirului, indicatorul ne va arăta dacă numărul căutat aparține sau nu șirului.
Implementare:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CautareSecventialaCS { class Program { static void Main(string[] args) { int[] v = new int[20]; int n, i, k; Console.WriteLine("numarul de elemente n: "); n = Convert.ToInt32(Console.ReadLine()); for (i = 1; i <= n; i++) { Console.Write("v[" + i + "]="); v[i] = Convert.ToInt32(Console.ReadLine()); } Console.Write("Numarul cautat in sir este: "); k=Convert.ToInt32(Console.ReadLine()); i = 1; while (i <= n && v[i] != k) { i = i + 1; } if (i <= n) Console.WriteLine("Numarul cautat se afla in sir pe pozitia " + i); else Console.WriteLine("Numarul cautat nu se afla in sir"); Console.ReadLine(); } } }
Module Module1 Sub Main() Dim v(20) As Integer Dim n, i, k As Integer Console.Write("numarul elementelor n este ") n = Convert.ToInt32(Console.ReadLine()) Console.WriteLine("introduceti elementele vectorului ") For i = 1 To n Console.Write("v[" & i & "]=") v(i) = Convert.ToInt32(Console.ReadLine()) Next i Console.Write("Numarul cautat in sir este: ") k = Convert.ToInt32(Console.ReadLine()) i = 1 While (i <= n And v(i) <> k) i = i + 1 End While If i <= n Then Console.WriteLine("Numarul cautat se afla in sir pe pozitia: " & i) Else Console.WriteLine("Numarul cautat nu se afla in sir") End If Console.ReadLine() End Sub End Module
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void main(void) { int v[20],n,i,k; cout<<"n="; cin>>n; cout<<"introduceti elementele vectorului\n"; for (i=1;i<=n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } cout<<"nr cautat in sir ="; cin>>k; i=1; while (i<=n && v[i]!=k) i++; if (i<=n) cout<<"Numarul cautat se afla in sir "<<"pe pozitia "<<i<<endl; else cout<<"Numarul cautat nu se afla in sir"<<endl; system("Pause"); }
import java.io.*;class CautareSecventialaJAVA { public static void main(String args[] { String line = null; int x=0; int a[]={1,3,5,7,9}; int I; System.out.println(“Dati elementul x “); try { BufferedReader is = new BufferedReader(new InputStreamReader(System.in)); line = is.readLine(); x = Integer.parseInt(line); } catch (NumberFormatException ex) { System.err.println(“Not a valid number: ” + line); } catch (IOException e) { System.err.println(“Unexpected IO ERROR: ” + e); } //================================================ i = 1; while (i <= 5 && a[i] != x) { i = i + 1; } if (i <= 5) System.out.println(“Numarul cautat se afla in sir pe pozitia ” + i); else System.out.println(“Numarul cautat nu se afla in sir”); } } |
Rezultat: