„Rendezés” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
(Új oldal, tartalma: „{{GlobalTemplate|Infoalap|Prog1Sort}} A rendezési algoritmusok célja, hogy valamilyen kriterium szerint rendezze az elemeket. Például egy telefonkönyvet név sze…”)
 
a
 
(6 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{GlobalTemplate|Infoalap|Prog1Sort}}
 
 
 
 
A rendezési algoritmusok célja, hogy valamilyen kriterium szerint rendezze az elemeket. Például egy telefonkönyvet név szerint szokás rendezni. De lehet éppen telefonszám vagy cím szerint is... Attól függően, hogy milyen adatstruktúrát rendezünk (sima mezei statikus tömb, [[Prog1LinkedList|dinamikus lista]] vagy valami egészen durván megkavart adatstruktúra), más és más algoritmusok előnyösek.
 
A rendezési algoritmusok célja, hogy valamilyen kriterium szerint rendezze az elemeket. Például egy telefonkönyvet név szerint szokás rendezni. De lehet éppen telefonszám vagy cím szerint is... Attól függően, hogy milyen adatstruktúrát rendezünk (sima mezei statikus tömb, [[Prog1LinkedList|dinamikus lista]] vagy valami egészen durván megkavart adatstruktúra), más és más algoritmusok előnyösek.
  
* Amíg nem gyűlnek össze itt is leírások, addig egy link
+
* Amíg nem gyűlnek össze itt is leírások, addig egy link ([http://en.wikipedia.org/wiki/Sorting_algorithm Wikipedia])
  ([http://en.wikipedia.org/wiki/Sorting_algorithm Wikipedia])
+
* Ö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
 
  ([https://wiki.sch.bme.hu/bin/view/Infoalap/AlgElRendezesKeresesOsszefoglalo AlgEl])
 
 
 
----
 
 
 
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 ''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.
  
 
Megoldás:
 
Megoldás:
  
<pre>void sort(int n, int *a) {
+
<syntaxhighlight lang="c">void sort(int n, int *a) {
 
int i, j;
 
int i, j;
 
for (i=0; i&lt;n-1; i++)
 
for (i=0; i&lt;n-1; i++)
for (j=i+1; j&lt;n; j++) <font color="black">// i&lt;j</font>
+
for (j=i+1; j&lt;n; j++) // i&lt;j
<font color="black">// csere, ha (növekvő sorrendben állnak) XOR (jó a növekvő sorrend)</font>
+
// csere, ha (növekvő sorrendben állnak) XOR (jó a növekvő sorrend)
 
if (a[i]&lt;a[j] ^ i%2==0) {
 
if (a[i]&lt;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;
 
}
 
}
}</pre>
+
}</syntaxhighlight>
 
 
-- [[PallosPeter|Peti]] - 2006.12.30.
 
 
 
  
 
[[Category:Infoalap]]
 
[[Category:Infoalap]]

A lap jelenlegi, 2016. január 19., 12:23-kori változata

A rendezési algoritmusok célja, hogy valamilyen kriterium szerint rendezze az elemeket. Például egy telefonkönyvet név szerint szokás rendezni. De lehet éppen telefonszám vagy cím szerint is... Attól függően, hogy milyen adatstruktúrát rendezünk (sima mezei statikus tömb, dinamikus lista vagy valami egészen durván megkavart adatstruktúra), más és más algoritmusok előnyösek.

  • Amíg nem gyűlnek össze itt is leírások, addig egy link (Wikipedia)
  • Összefoglaló a keresési és rendezési algoritmusokról (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.

Megoldás:

void sort(int n, int *a) {
	int i, j;
	for (i=0; i&lt;n-1; i++)
		for (j=i+1; j&lt;n; j++) // i&lt;j
			// csere, ha (növekvő sorrendben állnak) XOR (jó a növekvő sorrend)
			if (a[i]&lt;a[j] ^ i%2==0) {
				int swap=a[i]; a[i]=a[j]; a[j]=swap;
			}
}