![]() |
Mòdul
3
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
|
Pràctica
d'ampliació ![]() ![]() |
Alguns mètodes d'Ordenació
Segurament, amb la cerca, l'ordenació és una de les tasques més importants i més extensament analitzades de totes les tasques de programació. En aquesta pràctica veurem, sense entrar en massa detalls, dos dels mètodes d'ordenació més coneguts.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
El mètode de la bombolla
Aquest mètode és, potser, un dels més coneguts mètodes d'ordenació i el més simple, però també dels pitjors en quant a rapidesa. El mètode de la bombolla utilitza el mètode d'ordenació per canvi. Fa servir repetides comparacions i, si és necessari, canvis en els elements adjacents.
L'algoritme principal està destacat en un color de fons més fosc. Per tal
d'entendre com funciona aquest algoritme veurem com es canvien els números en
cada pas. Imaginem que entrem 5 números que són: 5,1,4,3,2. Els successius
canvis fins arribar a l'ordenació final són:
Cada pas correspon a una columna. Les caselles de color verd corresponen als números que ja estan ben col·locats.
Ordenació per selecció Una ordenació per selecció selecciona l'element més baix i el canvia pel primer element. A continuació fa el mateix amb els n-1 elements restants. En aquest mètode, si un número està ja en la seva posició no es mou. Exemple, si els números introduïts són: 5,1,4,3,2 els successius passos d'ordenació són:
El programa que implementa aquest algorisme és el següent:
Ordenació ràpida (Quicksort) L'ordenació ràpida va ser inventada i denominada d'aquesta forma per C.A.R. Hoare i és un mètode més eficient que els dos mètodes anteriors. No escriurem el codi d'aquesta ordenació perquè aquesta funció ja està implementada en les llibreries C estàndards. Només citarem que en l'ordenació ràpida es tria un element de comparació i se separen tots els números en dos conjunts: els que són més grans que aquest element de comparació i els que són més petits. Per a cada element es torna a fer el mateix procés amb uns altres elements de comparació. |