Căutarea secvențială

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:

Logo_C_Sharp
Cod Sursa C#
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();
        }
    }
}
Logo_VB
Cod Sursa VB
Module Module1
    Sub Main()
        Dim v(20As 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

 

Visual_C++_Icon
Cod Sursa C++

 

#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<=&& 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");
}

 

Java-Logo
Cod Sursa JAVA

 

//Complexitate: O(n) deoarece trebuie inspectate toate elementele vectorului
//Complexitatea se poate micsoara la O(n*log n) daca sunt proprietati pe datele de intrare
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 <= && 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:

cautare binara rezultat

 

 

Leave a comment