„Rendezés” változatai közötti eltérés
Nincs szerkesztési összefoglaló |
aNincs szerkesztési összefoglaló |
||
(4 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
4. sor: | 4. sor: | ||
* Összefoglaló a keresési és rendezési algoritmusokról ([[Keresés_és_rendezés|Algel összefoglaló]]) | * Összefoglaló a keresési és rendezési algoritmusokról ([[Keresés_és_rendezés|Algel összefoglaló]]) | ||
=== Tipikus vizsgafeladat === | |||
Adott bemenetként egy ''n'' elemű tömb. Rendezzük úgy, hogy a <math> 0, 2, 4, \dots, 2\left\lfloor\frac{n-1}{2}\right\rfloor, 2\left\lfloor\frac{n}{2}\right\rfloor-1, \dots, 5, 3, 1 </math> indexű elemei növekvő sorrendben legyenek. | |||
Tipikus vizsgafeladat | |||
Adott bemenetként egy | |||
Megoldás: | Megoldás: | ||
< | <syntaxhighlight lang="c">void sort(int n, int *a) { | ||
int i, j; | int i, j; | ||
for (i=0; i<n-1; i++) | for (i=0; i<n-1; i++) | ||
for (j=i+1; j<n; j++) | for (j=i+1; j<n; j++) // i<j | ||
// csere, ha (növekvő sorrendben állnak) XOR (jó a növekvő sorrend) | |||
if (a[i]<a[j] ^ i%2==0) { | if (a[i]<a[j] ^ i%2==0) { | ||
int swap=a[i]; a[i]=a[j]; a[j]=swap; | int swap=a[i]; a[i]=a[j]; a[j]=swap; | ||
} | } | ||
}</ | }</syntaxhighlight> | ||
[[Category:Infoalap]] | [[Category:Infoalap]] |