Delphi - Algoritmi gata - Stevens R

Delphi - Algoritmi pregătiți - Stevens R. - 2004.

Programarea a fost întotdeauna o sarcină destul de dificilă. Această carte vă va ajuta să depășiți cu ușurință dificultățile care apar cu ajutorul unei biblioteci de algoritmi puternici, implementați complet în cod sursa Delphi. Veți învăța cum să alegeți metoda cea mai potrivită pentru soluție sarcina specifica, și cum se realizează performanță maximă aplicatia ta. Sunt luate în considerare cazurile tipice și cele mai grave de implementare a algoritmilor, ceea ce vă va permite să recunoașteți în timp posibile dificultățiși, dacă este necesar, rescrieți sau înlocuiți o parte a programului. Cele mai importante elemente ale algoritmilor de stocare și procesare a datelor (liste, stive, cozi, arbori, sortare, căutare, hashing etc.) sunt descrise în detaliu. Nu numai că sunt date solutii traditionale, dar și metode bazate pe ultimele progrese în programarea orientată pe obiecte.
Cartea este destinată programatorilor Delphi începători, dar datorită structurării clare a materialului și a unei biblioteci bogate de algoritmi gata pregătiți, va fi de interes și pentru specialiști.

Introducere.
Capitolul 1. Noțiuni de bază
Ce sunt algoritmii?
Analiza vitezei de execuție, algoritmi
Memoria sau timpul.
Estimare până la ordinul de mărime
Definiţia complexity.
Complexitate algoritmi recursivi
Mediu și cel mai rău caz.
Funcții generale de evaluare a complexității.
Logaritmi
Viteza algoritmului in conditii reale
Accesarea fișierului swap.
Rezumat.
Capitolul 2. Liste
Concepte de bază despre liste.
Liste simple.
Redimensionarea matricelor.
Lista cu dimensiuni variabile
Clasa SimpleList.
Liste neordonate.
Liste aferente.
Adăugarea de elemente.
Îndepărtarea elementelor.
Capitolul 3. Stive și cozi
Stive.
Stive pe liste legate.
Cozile
Cozi ciclice.
Cozi bazate pe liste legate.
Cozile prioritare
Cozi cu mai multe fire.
Rezumat.
Capitolul 4. Matrice
Rețele triunghiulare
Elemente diagonale
Matrice neregulate
Reprezentare liniară cu indicator.
Liste neregulate legate.
Matrice dinamice Delphi.
Matrice rare.
Indexarea matricei
Matrice foarte rare.
Rezumat.
Capitolul 5. Recursiune
Ce este recursiunea
Calcul recursiv al factorialilor Analiza complexitatii
Calcul recursiv
cel mai mare divizor comun
Analiza complexității.
Calcul recursiv al numerelor Fibonacci
Analiza complexității.
Construcția recursivă a curbelor Hilbert
Analiza complexității.
Constructia recursiva a curbelor Sierpinski.
Analiza complexității
Dezavantajele recursiunii.
Recursie infinită
Pierderea memoriei
Utilizarea nerezonabilă a recursiunii.
Când să folosiți recursiunea.
Eliminarea recursiunii cozii
Calculul nerecursiv al numerelor Fibonacci.
Eliminarea recursiunii în caz general.
Generarea nerecursivă a curbelor Hilbert.
Construcția nerecursivă a curbelor Sierpinski Rezumat.
Capitolul 6. Copaci
Definiții
Reprezentări de arbori.
Noduri pline
Liste de noduri copii
Reprezentarea prin numerotare a conexiunilor.
Copaci plini
Traversarea copacilor.
Copaci ordonați
Adăugarea de elemente.
Îndepărtarea elementelor.
Traversarea arborilor ordonați
Copaci cu legături
Caracteristicile lucrării.
Q-arborele.
Modificarea valorii MAXQTREENODES
Copaci octali.
Rezumat.
Capitolul 7. Copaci echilibrați
Balansare.
arbori AVL
Adăugarea de noduri la arborele AVL.
Eliminarea nodurilor din arborele AVL.
B-copaci.
Performanță B-tree.
Eliminarea elementelor dintr-un arbore B
Adăugarea de elemente la arborele B
Soiuri de arbore B.
Îmbunătățirea arborilor B.
Probleme de acces la disc
Baza de date B+tree
Rezumat.
Capitolul 8. Arbori de decizie
Căutați în arbori de joc
Căutare minimă
Optimizarea căutării în arbori de decizie
Căutare soluții nestandardizate
Ramuri și margini.
Euristică.
Sarcini complexe
Problema de fezabilitate.
Problemă de partiție
Problemă de căutare a căii hamiltoniene.
Problemă cu vânzătorul ambulant
Problemă la stația de pompieri.
o scurtă descriere a sarcini complexe
rezumat
Capitolul 9 Triere
Principii generale.
Tabelele indexate.
Fuziunea și compresia cheilor.
Exemplu de program
Sortare după selecție
Amestecarea
Sortare prin inserare
Inserarea în listele legate
Sortare cu bule
Sortare rapida
Sortare îmbinare.
Sortare piramidală.
Piramidele.
Cozile prioritare.
Algoritmul Heapsort
Sortarea prin numărare.
Sortare bloc
Blocați sortarea folosind liste legate
rezumat
Capitolul 10. Căutare
Exemple de programe
Căutare completă
Iterarea peste liste sortate.
Buclă prin listele legate
Căutare binară.
Căutare prin interpolare.
Date șir.
Căutare de urmărire
Urmărire și căutare binare
Căutare interpolativă de urmărire.
Rezumat.
Capitolul 11. Hashing
Legare.
Avantajele și dezavantajele lipirii
Blocuri.
Stocarea tabelelor hash pe disc.
Blocuri de legătură.
Îndepărtarea elementelor.
Avantajele și dezavantajele utilizării blocurilor de adrese deschise
Verificare liniară.
Verificare cuadratică
Verificare pseudo-aleatorie
Îndepărtarea elementelor.
Rezumat.
Capitolul 12. Algoritmi de rețea
Definiții
Vizualizări de rețea
Gestionarea nodurilor și a legăturilor
Bypass rețea
Cel mai mic cadru de copac,
Cea mai scurtă cale
Amplasarea mărcilor.
Corectarea notelor
Opțiuni pentru găsirea celei mai scurte căi.
Aplicarea algoritmilor pentru găsirea celei mai scurte căi.
Debit maxim
Domenii de aplicare.
rezumat
Capitolul 13. Metode orientate pe obiecte.
Avantajele OOP.
Încapsulare.
Polimorfism
Reutilizare și moștenire
Paradigma POO.
Controlați obiectele
Obiect de control
Iterator.
Clasa prietenoasa.
Interfață
Faţadă
Fabrică.
Singurul obiect
Serializare
Paradigm Model/View/Controller Summary.
Anexa 1. Arhiva de exemple
Conținutul arhivei cu exemple
Cerințe hardware
Rularea programelor de exemplu
Informații despre utilizator și asistență
Anexa 2. Lista de programe exemple
Index de subiect

Descărcare gratuită e-carte V format convenabil, urmăriți și citiți:
Descarcă cartea Delphi - Algoritmi gata - Stevens R. - fileskachat.com, descărcare rapidă și gratuită.

Descărcați djvu
Puteți cumpăra această carte mai jos cel mai bun preț la reducere cu livrare în toată Rusia.

Când studiezi informatica, se acordă multă atenție studiului algoritmilor și tipurilor acestora. Fără a cunoaște informații de bază despre ele, nu puteți scrie un program sau analiza funcționarea acestuia. Studiul algoritmilor începe în curs şcolar informatică. Astăzi ne vom uita la conceptul de algoritm, proprietățile unui algoritm, tipuri.

Concept

Algoritmul este secvență specifică actiuni care conduc la atingerea unui anumit rezultat. La compilarea unui algoritm, fiecare acțiune a executantului este prescrisă în detaliu, ceea ce îl va conduce ulterior la rezolvarea sarcinii.

Destul de des, algoritmii sunt folosiți în matematică pentru a rezolva anumite probleme. Astfel, mulți oameni cunosc algoritmul de rezolvare a ecuațiilor pătratice cu căutarea unui discriminant.

Proprietăți

Înainte de a le considera în informatică, este necesar să le clarificăm proprietățile de bază.

Dintre principalele proprietăți ale algoritmilor, trebuie evidențiate următoarele:

  • Determinism, adică certitudine. Ideea este că orice algoritm presupune obținerea unui anumit rezultat dat fiind cele inițiale.
  • Productivitate. Înseamnă că, având în vedere un număr de date inițiale, după parcurgerea unui număr de pași, se va obține un anumit rezultat așteptat.
  • Caracter de masă. Un algoritm scris o singură dată poate fi folosit pentru a rezolva toate problemele de un anumit tip.
  • Discretenie. Implică faptul că orice algoritm poate fi împărțit în mai multe etape, fiecare având propriul său scop.

Metode de înregistrare

Indiferent de tipurile de algoritmi informatici pe care îi căutați, există mai multe moduri de a le scrie.

  1. Verbal.
  2. Formula-verbal.
  3. Grafic.
  4. Limbajul algoritmului.

Algoritmul este cel mai adesea descris ca o diagramă de flux folosind denumiri speciale, fixat de GOST-uri.

Principalele tipuri

Există trei scheme principale:

  1. Algoritm liniar.
  2. Algoritm de ramificare sau ramificat.
  3. Ciclic.

Liniar

Este considerată cea mai simplă din informatică, implică o succesiune de acțiuni. Să dăm cel mai simplu exemplu de algoritm de acest tip. Să-i spunem „Pregătește-te de școală”.

1. Ridică-te când sună ceasul cu alarmă.

2. Ne spalam.

3. Spală-te pe dinți.

4. Faceți exerciții.

5. Îmbracă-te.

6. Mâncăm.

7. Ne încălțăm și mergem la școală.

8. Sfârșitul algoritmului.

Algoritm de ramificare

Când luăm în considerare tipurile de algoritmi din informatică, nu se poate să nu ne amintim structura de ramificare. Acest tip presupune existența unei condiții în care, dacă este îndeplinită, acțiunile sunt îndeplinite într-o ordine, iar dacă nu sunt îndeplinite, în alta.

De exemplu, luați următoarea situație - un pieton care traversează drumul.

1. Ne apropiem de un semafor.

2. Ne uităm la semnalul semafor.

3. Trebuie să fie verde (aceasta este o condiție).

4. Dacă condiția este îndeplinită, traversăm drumul.

4.1 Dacă nu, așteptați până când ledul verde se aprinde.

4.2 Traversăm drumul.

5. Sfârșitul algoritmului.

Algoritmul round robin

Când studiați tipurile de algoritmi din informatică, ar trebui să vă concentrați în detaliu Acest algoritm implică o secțiune de calcul sau acțiune care este efectuată până când este îndeplinită o anumită condiție.

Să luăm un exemplu simplu. Dacă seria de numere este de la 1 la 100. Trebuie să le găsim pe toate, adică pe cele care sunt divizibile cu unul și ei înșiși. Să numim algoritmul „Numere prime”.

1. Luați numărul 1.

2. Verificați dacă este mai mic de 100.

3. Dacă da, verificați dacă acest număr este prim.

4. Dacă condiția este îndeplinită, notați-o.

5. Luați numărul 2.

6. Verificați dacă este mai mic de 100.

7. Verifică dacă este simplu.

…. Să luăm numărul 8.

Să verificăm dacă este mai mică de 100.

Se verifică dacă numărul este prim.

Nu, să omitem.

Să luăm numărul 9.

În acest fel trecem prin toate numerele până la 100.

După cum puteți vedea, pașii 1 - 4 se vor repeta de mai multe ori.

Printre algoritmii ciclici, există algoritmi cu o precondiție, când condiția este verificată la începutul ciclului, sau cu o postcondiție, când verificare în curs la sfarsitul ciclului.

Alte optiuni

Algoritmul poate fi, de asemenea, amestecat. Deci, poate fi ciclic și ramificat în același timp. În acest caz, ele sunt folosite conditii diferiteîn diferite etape ale algoritmului. Astfel de structuri complexe sunt adoptate la scriere programe complexe si jocuri.

Simboluri de diagramă bloc

Ne-am uitat la ce tipuri de algoritmi există în informatică. Dar nu am vorbit despre ce notații sunt folosite atunci când le înregistrăm grafic.

  1. Începutul și sfârșitul algoritmului sunt scrise într-un cadru oval.
  2. Fiecare comandă este înregistrată într-un dreptunghi.
  3. Condiția este scrisă cu un diamant.
  4. Toate părțile algoritmului sunt conectate folosind săgeți.

concluzii

Am discutat subiectul „Algoritmi, tipuri, proprietăți”. Informatica petrece mult timp studiind algoritmi. Sunt folosite la scriere diverse programe cum să rezolve probleme matematice, și pentru crearea de jocuri și diverse tipuri de aplicații.


Visual Basic. Algoritmi pregătiți- Cartea prezintă concepte importante de programare care pot fi aplicate cu succes pentru a rezolva multe probleme practice. Algoritmii propuși folosesc metode puternice cum ar fi recursiunea, partiţionarea, distributie dinamica memorie şi structuri de retea date care vă vor ajuta să creați flexibile și aplicatii complexe.
Sunt discutate în detaliu cele mai importante concepte ale teoriei algoritmilor și procesării datelor (liste, stive, cozi, arbori, sortare, căutare, hashing etc.).
Cartea contine un numar mare de exemple pe care le puteți folosi aplicatii proprii fie fără modificări, fie modificându-le la discreția dvs.
Conceput în primul rând pentru utilizatori experimentați Visual Basic, dar datorită accesibilității prezentării și a unei biblioteci bogate de algoritmi gata pregătiți, va fi, de asemenea, de interes pentru programatorii începători.

Nume: Visual Basic. Algoritmi gata pregătiți (+ exemple)
Stevens R.
Editor: Apăsați DKM
An: 2000
Pagini: 377
Format: DJVU
Mărimea: 20,3 MB
ISBN: 5-94074-001-4
Calitate: Excelent
Seria sau problema: Pentru programatori

Introducere
Capitolul 1. Concepte de bază
Ce este un algoritm
Analiza vitezei de executare a algoritmului
Resurse și timp
Estimare până la ordinul de mărime
Găsirea părților problematice ale algoritmului
Complexitatea algoritmilor recursivi
Cel mai rău caz și mediu
Funcții de evaluare a comenzii de dificultate
Logaritmi
Viteza algoritmului în condiții reale
Accesarea fișierului swap
Pseudopointers, referințe la obiecte și colecții
rezumat
Capitolul 2. Liste
Capitolul Întrebări cheie
Liste simple
Colecții
Lista cu dimensiuni variabile
Clasa SimpleList
Liste neordonate
Liste aferente
Adăugarea de elemente
Eliminarea articolelor
Distrugerea unei liste conectate
Semnele de semnal
Încapsularea listelor legate
Acces la celulă
Tipuri de liste legate
Liste circulare legate
Problemă de referință circulară
Liste dublu legate
Fluxuri
Alte structuri conexe
Pseudo indicatoare
rezumat
Capitolul 3- Stive și cozi
Stive
Stive multiple
Cozile
Cozi circulare
Cozi bazate pe liste legate
Utilizarea colecțiilor ca cozi
Cozi prioritare
Cozi cu mai multe fire
rezumat
Capitolul 4. Matrice
Rețele triunghiulare
Elemente diagonale
Matrice neregulate
Reprezentare liniară cu pointeri
Liste neregulate legate
Matrice rare
Indexarea matricei
Matrice foarte rare
rezumat
Capitolul 5. Recursiune
Ce este recursiunea
Calcul recursiv al factorilor
Calculul recursiv al celui mai mare divizor comun
Analiza timpului de executare a programului
Calcul recursiv al numerelor Fibonacci
Analiza timpului de executare a programului
Construcția recursivă a curbelor Hilbert
Analiza timpului de executare a programului
Constructia recursiva a curbelor Sierpinski
Analiza timpului de executare a programului
Dezavantajele recursiunii
Recursie infinită
Pierderea memoriei
Utilizarea nerezonabilă a recursiunii
Când să folosiți recursiunea
Recursie coadă
Calculul nerecursiv al numerelor Fibonacci
Eliminarea recursiunii în general
Construcția nerecursivă a curbelor Hilbert
Construcția nerecursivă a curbelor Sierpinski
rezumat
Capitolul 6. Copaci
Termeni de bază
Vederi la copac
Noduri pline
Liste de descendenți
Reprezentarea prin numerotare a conexiunilor
Copaci plini
Traversarea copacilor
Copaci ordonați
Adăugarea de elemente
Eliminarea articolelor
Traversarea arborilor ordonați
Copaci cu legături
Caracteristicile muncii
Q-arborele
Modificarea numărului de elemente dintr-un nod
Folosind pseudo-indicatori
Copaci octali
rezumat
Capitolul 7. Arbori echilibrați
Echilibrul arborelui
arbori AVL
Adăugarea unui nod
Ștergerea unui nod
B-copaci
Performanță B-tree
Inserarea elementelor
Eliminarea articolelor
Tipuri de arbori B
Creșterea performanței arborilor B
Balansare
Probleme legate de accesarea discului
Baza de date B+tree
rezumat
Capitolul 8. Arborele de decizie
Căutați în arbori de joc
Căutare minimă
Optimizarea căutării
Căutați soluții non-standard
Metoda ramurilor și legate
Euristică
Sarcini complexe
Problema de satisfacție
Problemă de partiție
Problema drumului hamiltonian
Problemă cu vânzătorul ambulant
Problemă la stația de pompieri
Scurtă descriere a problemelor complexe
rezumat
Capitolul 9. Sortarea
Principii generale
Tabelele indexate
Fuziunea și compresia cheilor
Exemple de programe
Sortare după selecție
Amestecarea
Sortare prin inserare
Inserarea în listele legate
Sortare cu bule
Sortare rapida
Sortare îmbinare
Sortare grămadă
Piramidele
Cozi prioritare
Algoritmul Heapsort
Sortare de numărare
Sortare bloc
Blocați sortarea folosind lista legată
Sortare bloc pe baza matricei
rezumat
Capitolul 10. Căutare
Exemple de programe
Căutați prin metoda de căutare exhaustivă
Căutați în liste ordonate
Căutați liste aferente
Căutare binară
Căutare prin interpolare
Date șir
Căutare de urmărire
Căutare de urmărire prin interpolare
rezumat
Capitolul 11. Hashing
Legare
Avantajele și dezavantajele lipirii
Blocuri
Stocarea tabelelor hash pe disc
Blocuri de legătură
Eliminarea articolelor
Avantajele și dezavantajele utilizării blocurilor
Adresare deschisă
Verificare liniară
Verificare cuadratică
Verificare pseudo-aleatorie
Eliminarea articolelor
rezumat
Capitolul 12. Algoritmi de rețea
Termeni de bază
Vizualizări de rețea
Noduri de operare și legături
Se accesează cu crawlere în rețea
Cel mai mic cadru de copac
Cel mai scurt traseu
Amplasarea mărcilor
Corectarea notelor
Opțiuni pentru găsirea celui mai scurt traseu
Aplicații care folosesc cea mai scurtă metodă de căutare a rutei
Debit maxim
Domenii de aplicare
rezumat
Capitolul 13. Metode orientate pe obiecte
Avantajele OOP
Încapsulare
Polimorfism
Moștenirea și reutilizare
Paradigmele OOP
Controlați obiectele
Obiect de control
Iterator
Clasa prietenoasa
Interfață
Faţadă
Obiect generator
Singurul obiect
Serializare
Paradigm Model/View/Controller
rezumat
Anexa 1. Arhiva cu exemple
Anexa 2. Lista de programe exemple
Index alfabetic

Descărcați Visual Basic. Algoritmi gata pregătiți (+ exemple)