html5-img
1 / 5

Sortarea prin numărare !!!!

Sortarea prin numărare !!!!. Noţiuni generale. Pseudocod. Caracteristici. !. Verificare î n c++. Program C ++. No ţ iuni Generale.

efrem
Download Presentation

Sortarea prin numărare !!!!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sortarea prin numărare!!!! Noţiuni generale Pseudocod Caracteristici ! Verificareîn c++ ProgramC++

  2. NoţiuniGenerale Un algoritm de sortare este un algoritm ce permută elementele unei liste astfel încât acestea să respecte o ordine dată (cel mai des folosite sunt ordinea numerică şi cea lexicografică). Câteva din aspectele importante care se au în vedere în realizarea şi analizarea unui algoritm de sortare sunt: Complexitatea temporală al algoritmului, în cazul mediu, respectiv pe cel mai rău caz. Complexitatea se analizează cel mai des în funcţie de numărul de elemente de sortat. Cazul ideal pentru un algoritm de sortare este O(n) , dar pentru algoritmii care folosesc doar comparaţii de chei, s-a demonstrat că limita inferioară a complexităţii este Ω(n⋅log(n)). Utilizarea memoriei: memoria suplimentară consumată de algoritm pe lângă memoria folosită strict pentru stocarea listei de elemente. Stabilitatea: un algoritm care păstrează ordinea relativă a elementelor în cazul în care ele au chei egale este un algoritm stabil.

  3. Caracteristici Această metodă necesită spaţiu suplimentar de memorie. Ea foloseşte următorii vectori: - vectorul sursă (vectorul nesortat) a; - vectorul destinaţie (vectorul sortat) b; - vectorul numărător (vectorul de contoare) k. Elementele vectorului sursă a[i] se copie în vectorul destinaţie prininserarea în poziţia corespunzătoare, astfel încât, în vectorul destinaţie săfie respectată relaţia de ordine. Pentru a se cunoaşte poziţia în care se vainsera fiecare element, se parcurge vectorul sursă şi se numără în vectorulk, pentru fiecare element a[i], câte elemente au valoarea mai mică decât alui. Fiecare element al vectorului k este un contor pentru elementul a[i].Valoarea contorului k[i] pentru elementul a[i] reprezintă câte elemente suntmai mici decit el şi arată de fapt poziţia în care trebuie copiat în vectorul b.

  4. Pseudocod Citeşte n; Pentru i=0; i<n; Citeşte a[i]; Pentru i=0; i<n-1; Pentru j=i+1 ;j<n; Dacă (a[i]>a[j]) k[i]++; Altfel k[j]++; Pentru i=0; i<n; b[k[i]]=a[i]; Pentru i=0; i<n; Scrie b[i];

  5. Program C++ #include <iostream.h> Void main () { int i,j,n,a[50],b[50],k[50]={0}; cout<<"Introduceti dimensiunea sirului : "; cin>>n; for(i=0;i<n;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]>a[j]) k[i]++; else k[j]++; for(i=0;i<n;i++) b[k[i]]=a[i]; cout<<"Vectorul ordonat este : "; for(i=0;i<n;i++) cout<<b[i]<<" "; cout<<endl; }

More Related