Algoritmi de Căutare și Sortare

Licență
8/10 (1 vot)
Domeniu: Matematică
Conține 1 fișier: doc
Pagini : 44 în total
Cuvinte : 9702
Mărime: 418.71KB (arhivat)
Publicat de: Rafila Nechita
Puncte necesare: 10

Cuprins

  1. Căutare, Sortare şi Selecţie 4
  2. 1. Căutare 4
  3. 1.1. Căutare binară 4
  4. 1.2. Arbori binari de căutare 9
  5. 2. Sortare 13
  6. 2.1. Strategii generale de sortare 13
  7. 2.2. Sortarea prin inserţie binară 19
  8. 2.3. Sortarea rapidă (Quicksort) 20
  9. 2.4. Sortare cu număr minim de comparaţii 24
  10. 2.5. Sortarea prin distribuire 31
  11. 2.6. Sortarea topologică 35
  12. 3. Interclasare 38
  13. 4. Selecţie 41
  14. Bibliografie 47

Extras din licență

Introducere

Căutarea şi Sortarea sunt două dintre cele mai des întâlnite subprobleme în programare. Ele constituie o parte esenţială din numeroasele procese de prelucrare a datelor. Operaţiile de căutare şi sortare sunt executate frecvent de către oameni în viaţa de zi cu zi, ca de exemplu căutarea unui cuvânt în dicţionar sau căutarea unui număr în cartea de telefon.

Căutarea este mult simplificată dacă datele în care efectuăm această operaţie sunt sortate (ordonate, aranjate) într-o anumită ordine (cuvintele în ordine alfabetică, numerele în ordine crescătoare sau descrescătoare).

Sortarea datelor consta în rearanjarea colecţiei de date astfel încat un câmp al elementelor colecţiei să respecte o anumită ordine. De exemplu în cartea de telefon fiecare element (abonat) are un câmp de nume, unul de adresă şi unul pentru numărul de telefon. Colecţia aceasta respectă ordinea alfabetică după câmpul de nume.

Dacă datele pe care dorim să le ordonăm, adică să le sortăm, sunt în memoria internă, atunci procesul de rearanjare a colecţiei îl vom numi sortare internă.

Fiecare element al colecţiei de date se numeşte articol iar acesta la randul sau este compus din unul sau mai multe componente. O cheie este asociată fiecărui articol şi este de obicei unul dintre componente. Spunem că o colecţie de articole este ordonată crescator după cheia dacă pentru , iar dacă atunci şirul este ordonat descrescător.

Căutare, Sortare şi Selecţie

1. Căutare

1.1. Căutare binară

Se dau un vector şi o valoare . Se cere să se determine dacă se află printre elementele vectorului .

Dacă este un vector oarecare, atunci trebuie parcurse secvenţial elementele vectorului. Această modalitate necesită cel mult comparaţii în cazul unei căutări cu succes şi exact comparaţii în cazul căutării fără succes. Numărul mediu de comparaţii în cazul unei căutări cu succes este:

Dacă are elementele în ordine crescătoare - situaţie des întâlnită în practică – atunci există posibilitatea de a efectua o căutare mai performantă. Deci în continuare vom lucra în ipoteza .

Vom folosi metoda „Divide et impera” , începând prin a compara cu elementul „din mijloc”, adică cu unde . Dacă , atunci căutarea se încheie cu succes. În caz contrar, vom căuta în secvenţa dacă sau în secvenţa dacă . Vom presupune că dorim ca soluţia să fie exprimată sub forma:

unde . Atunci metoda descrisă este corectată în procedura , în care şi sunt primul, respectiv ultimul indice din secvenţa curentă în care se află .

Singura explicaţie necesară este legată de cazul în care căutarea se termină fără succes. Observăm că situaţia este precedată de situaţia în care valorile lui şi sunt şi cu . Dacă avem deci ; dacă atunci deci . Rezultă că valoarea tipărită este corectă.

Analiza timpui de lucru

În acest scop vom încerca să determinăm numărul de comparaţii care au loc între şi . Acest număr este cel care va dicta eficacitatea algoritmului deoarece, pe de o parte, elementele pot fi matrici, polinoame etc., iar pe de altă parte numărul de atribuiri şi numărul de comparaţii impuse de execuţia ciclului while diferă cu o unitate de numărul căutat. Un prim rezulatat este următorul:

1) Pentru , în cazul unei căutări cu succes se fac cel mult comparaţii, iar în cazul unei căutări fără succes se fac sau comparaţii.

Înainte de a face demonstraţia, vom ataşa algoritmului un arbore binar astfel:

- pentru arborele se reduce la (1), pentru arborele este vid

- pentru o valoare oarecare arborele are forma din Fig.1, unde ,

este arborele corespunzător lui , iar este arborele corespunzător lui , în care numerele vârfurilor sunt mărite cu .

Preview document

Algoritmi de Căutare și Sortare - Pagina 1
Algoritmi de Căutare și Sortare - Pagina 2
Algoritmi de Căutare și Sortare - Pagina 3
Algoritmi de Căutare și Sortare - Pagina 4
Algoritmi de Căutare și Sortare - Pagina 5
Algoritmi de Căutare și Sortare - Pagina 6
Algoritmi de Căutare și Sortare - Pagina 7
Algoritmi de Căutare și Sortare - Pagina 8
Algoritmi de Căutare și Sortare - Pagina 9
Algoritmi de Căutare și Sortare - Pagina 10
Algoritmi de Căutare și Sortare - Pagina 11
Algoritmi de Căutare și Sortare - Pagina 12
Algoritmi de Căutare și Sortare - Pagina 13
Algoritmi de Căutare și Sortare - Pagina 14
Algoritmi de Căutare și Sortare - Pagina 15
Algoritmi de Căutare și Sortare - Pagina 16
Algoritmi de Căutare și Sortare - Pagina 17
Algoritmi de Căutare și Sortare - Pagina 18
Algoritmi de Căutare și Sortare - Pagina 19
Algoritmi de Căutare și Sortare - Pagina 20
Algoritmi de Căutare și Sortare - Pagina 21
Algoritmi de Căutare și Sortare - Pagina 22
Algoritmi de Căutare și Sortare - Pagina 23
Algoritmi de Căutare și Sortare - Pagina 24
Algoritmi de Căutare și Sortare - Pagina 25
Algoritmi de Căutare și Sortare - Pagina 26
Algoritmi de Căutare și Sortare - Pagina 27
Algoritmi de Căutare și Sortare - Pagina 28
Algoritmi de Căutare și Sortare - Pagina 29
Algoritmi de Căutare și Sortare - Pagina 30
Algoritmi de Căutare și Sortare - Pagina 31
Algoritmi de Căutare și Sortare - Pagina 32
Algoritmi de Căutare și Sortare - Pagina 33
Algoritmi de Căutare și Sortare - Pagina 34
Algoritmi de Căutare și Sortare - Pagina 35
Algoritmi de Căutare și Sortare - Pagina 36
Algoritmi de Căutare și Sortare - Pagina 37
Algoritmi de Căutare și Sortare - Pagina 38
Algoritmi de Căutare și Sortare - Pagina 39
Algoritmi de Căutare și Sortare - Pagina 40
Algoritmi de Căutare și Sortare - Pagina 41
Algoritmi de Căutare și Sortare - Pagina 42
Algoritmi de Căutare și Sortare - Pagina 43
Algoritmi de Căutare și Sortare - Pagina 44

Conținut arhivă zip

  • Algoritmi de Cautare si Sortare.doc

Alții au mai descărcat și

Rapoarte. proporții

Unitatea de invatamant: Scoala cu clasele I-VIII Borosoaia Data: 5.01.2010 Clasa:a VI-a A Profesor: Disciplina: matematica-algebra Unitatea...

Probabilități

CAPITOLUL 1 NOTIUNI FUNDAMENTALE ALE TEORIEI PROBABILITATILOR 1.1 Experienta. Proba. Eveniment Orice disciplina foloseste pentru obiectul ei...

Plan de lecție clasa a XII a - proprietăți ale legilor de compoziție - comutativitate . asociativitate

Liceul : Grup Scolar Industrial Construtii de Masini Dacia Clasa :a XII-a E Data : 6.10.2008 Propunator : profesor Disciplina:...

Ecuații Diferențiale Ordinare de Ordinul Întâi Integrabile prin Cuadraturi

O ecuaţie diferenţială ordinară de ordinul întâi sub formă normală se prezintă printr-o egalitate de forma: , (1) unde este funcţia necunoscută...

Matematici Speciale

Tema de casă nr.1 1. Funcţii şi formule trigonometrice 2. Formule de derivare 3. Formule de integrare Temă de casă nr.2 1. Să se determine...

Limbajul PHP

CAPITOLUL I Limbajul PHP (PHP Hypertext Preprocessor) 1. Introducere. Funcţionarea motorului PHP Definiţie recursivă: PHP (PHP Hypertext...

Progresii Aritmetice și Geometrice

1.DEFINITIA PROGRESIEI ARITMETICE Un sir de numere (A1 ,A2 ,… ,An ; n>=1) in care fiecare termen incepand cu al doilea ,se obtine din cel...

Te-ar putea interesa și

Compresia Datelor

COMPRESIA DATELOR 1. Compresia de date: Istoric, evolutie si scurta prezentare a unor metode elementare de compresie 1.1 Istoria compresiei de...

Divide et Impera

1.1.Tema proiectului Sa se dezvolte o aplicatie realizata in Power Point care sa cuprinda informatii despre metoda “Divide et impera”.Aplicatia va...

Implementarea căutării de date pe diferite structuri de date în C++

1. INTRODUCERE Obiectivul problemei este de a implementa căutarea de date numerice pe diferite structuri de date: arbore binar de căutare şi...

Subiectele pentru examenul de licență specialitatea - informatică și limbi moderne aplicate

ALGEBRA 1. Subgrup normal. Condiţii necesare şi suficiente ca un subgrup să fie normal. Grup factor. Exemple. 2. Morfisme de grupuri. Nucleul şi...

Proiectarea Algoritmilor

1. INTRODUCERE ÎN PROIECTAREA ALGORITMILOR 1.1. Definiţii Un algoritm este o metodă de rezolvare pas cu pas a problemelor. O problemă este...

Algoritmi și Structuri de Date

Modulul 0. Alocare dinamica in limbajul C Capitolul 0. Pointeri si alocare dinamica. Tipul de date struct 0.1 Pointeri si alocare dinamica O...

Laborator SDA

LISTE SIMPLU ÎNLANTUITE 1. Continutul lucrarii În lucrare sunt prezentate operatiile importante asupra listelor simplu înlantuite si...

Ai nevoie de altceva?