Sortare Prin Numarare
-
Upload
miclauscristian -
Category
Documents
-
view
447 -
download
0
Transcript of Sortare Prin Numarare
![Page 1: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/1.jpg)
Sortare prin numSortare prin număărarerare
Silaghi Ioana SorinaSilaghi Ioana Sorina
Clasa a XI-a B Clasa a XI-a B
![Page 2: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/2.jpg)
EnunţulEnunţul problemeiproblemei
Se dă un şir de numere intregi.Se cere Se dă un şir de numere intregi.Se cere sortarea lor în ordine crescătoare.sortarea lor în ordine crescătoare.
![Page 3: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/3.jpg)
ExempluExemplu
7 2 3 -1A:
i:=1 7
j
= 7
7
k:=0
> 2
7
7
>
>
3
-1
k:=1
k:=2
k:=3
7
k+1
i:=2
2
2
2
2
=
<
<
>
7
2
3
-1
k:=0
k:=0
k:=0
k:=172
k+1
![Page 4: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/4.jpg)
i:=3
33
3
3
3
<
>
>
=
7
2
-1
k:=0
k:=1
k:=1
k:=22 3 7
k+1
i:=4
-1
-1
-1
-1
-1
<
<
<
=
7
2
3
k:=0
k:=0
k:=0
k:=0
732-1
k+1
![Page 5: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/5.jpg)
AlgoritmulAlgoritmul
Metoda de sortare prin numărare constă în Metoda de sortare prin numărare constă în construirea unui nou tablou B care are aceaşi construirea unui nou tablou B care are aceaşi dimensiune ca şi tabloul A , în care depunem dimensiune ca şi tabloul A , în care depunem elementele din A ordonate crescător.elementele din A ordonate crescător.
Vom analiza fiecare element şi îl vom compara cu Vom analiza fiecare element şi îl vom compara cu fiecare alt element din şir pentru a putea reţine în fiecare alt element din şir pentru a putea reţine în variabila K numărul elementelor care sunt mai mici variabila K numărul elementelor care sunt mai mici decât elementul considerat astfel vom afla poziţia decât elementul considerat astfel vom afla poziţia pe care trebuie să-l punem pe acesta în şirul B.pe care trebuie să-l punem pe acesta în şirul B.
Dacă în problemăavem nevoie de şirul ordonat tot Dacă în problemăavem nevoie de şirul ordonat tot în tabloul A,vom copia în A întreg tabloul B prin în tabloul A,vom copia în A întreg tabloul B prin A:=B. A:=B.
![Page 6: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/6.jpg)
ImplementareaImplementarea
AA:array[:array[1..1001..100]of integer;-şirul care ]of integer;-şirul care trebuie ordonattrebuie ordonat
NN:integer;-numarul elementelor lui A:integer;-numarul elementelor lui A BB:array[1..100]of integer;-şirul gata :array[1..100]of integer;-şirul gata
ordonatordonat KK:integer;-numărul elementelor mai :integer;-numărul elementelor mai
mici decât elementul considerat;mici decât elementul considerat;
![Page 7: Sortare Prin Numarare](https://reader036.fdocuments.net/reader036/viewer/2022082813/55cb5f9bbb61eb7f358b4643/html5/thumbnails/7.jpg)
ProgramulProgramul Program numărare;Program numărare;Type vector=array[1..100]of integer;Type vector=array[1..100]of integer;Var a:vector;Var a:vector;I,j,n:integer;I,j,n:integer;Procedure num(var a:vector;n:integer);Procedure num(var a:vector;n:integer); var b:vector;var b:vector; k:integer;k:integer;BeginBeginFor i:=1 to n do beginFor i:=1 to n do begin k:=0;k:=0;For j:=1 to n do For j:=1 to n do If (a[i]If (a[i]>a[j]>a[j])) and (i<>j) and (i<>j) then k:=k+1; then k:=k+1; b[k+1]:=a[i];b[k+1]:=a[i]; end;end; aa:=:=bb;;end;end; BEGINBEGINWrite(Write(‘‘n=n=‘‘);readln(n););readln(n);For i:= 1 to n do beginFor i:= 1 to n do begin write(write(‘a[‘,i,’]=‘‘a[‘,i,’]=‘));readln(a[i]);;readln(a[i]); end;end;Num(a,n);Num(a,n);For i:=1 to n do write(a[i]);For i:=1 to n do write(a[i]);Readln;Readln;end.end.