Analiză discretă

Coada de priorități este un sistem informatic în care înregistrările au chei care sunt comparabile liniar (de exemplu, numere) și sunt implementate două operații: includerea în sistem a unei înregistrări arbitrare și selectarea din sistemul de înregistrare cu cea mai mică cheie. Cheia pentru această utilizare se numește prioritate. deși este puțin ciudat - este selectată înregistrarea cu cea mai mică prioritate.

Cozi de prioritate se găsesc adesea în sistemele de aplicații software, iar performanța programelor depinde direct de eficiența implementării lor.

În această prelegere vom examina mai multe moduri de a implementa coada de priorități, începând cu cele mai naive.

Este foarte simplu să faceți o coadă de priorități. Este suficient să organizați o listă de lanțuri și să introduceți intrări noi la începutul acestei liste. funcționarea includerii va fi astfel foarte simplă. descrie un șir nou, variabil sau constant,

Dacă țineți lista ordonată după prioritatea înregistrărilor, apoi invers, o operație simplă de eșantionare, dar operațiunea de includere devine mai complicată - va trebui să găsiți un loc în coada de așteptare de fiecare dată când aveți nevoie pentru a pune un nou record

*** Am enumerat operațiunile pe care le-am luat deja în considerare și adăugăm câteva noi.

*** Și acum vom analiza în detaliu acele operații, despre care nu am vorbit înainte sau nu am vorbit suficient.

***** Pascal are un șir special de tip de date. și putem descrie o nouă linie, o variabilă sau o constantă și putem efectua cu ea acțiunile furnizate, inclusiv cele care schimbă lungimea șirului. Cu această schimbare, șirul se poate muta dintr-un loc în memorie în altul, sistemul de asistență în sine efectuează mișcarea, iar programatorul nu trebuie să-și facă griji.

În textul unui program, șirurile variabile sunt descrise foarte simplu:

Constantele de coarde sunt închise în apostrofuri:

const
sOrg = "mamele de la Universitatea de Stat din St. Petersburg";

În programul executabil, șirul este stocat ca o matrice octet, iar octetul inițial, zero, al programatorului inaccesibil conține lungimea liniei în sine.

**** Fie lungimile secvențelor de cod ale acestor simboluri în codul optim egal r1, respectiv. R2. nk.

Apoi, pentru orice pereche de indicatori distinși k și l, inegalități

  • Codificați codul primit cu al doilea rând, traduceți rezultatul într-un sistem de numere hexazecimale și spargeți-l în octeți.
  • Construiește codul Huffman pentru șirul rezultat din operația de conversie MTF.
  • Utilizați metoda LZ pentru a comprima șirul aaaaabbaabaaaabbaabbaaaaabbbbaaaaaa.
  • Aceeași linie este comprimată prin metoda LZW și apoi restabilirea șirului original din textul comprimat.
  • Folosind metoda Barrow-Wheeler, comprimați linia 4 de la primul exercițiu.






  • <





    / h4>


    1. Operațiuni pe linii.

  • Compararea lexicografică a șirurilor de caractere.

  • Găsirea distanței editoriale.

  • Căutați o mostră într-o linie folosind metoda Karp-Rabin.

  • Examinați o căutare într-un șir folosind Z-transform.







    Articole similare

    Trimiteți-le prietenilor: