Mohó algoritmusok implementálásakor gyakran van szükségünk a feldolgozandó adatok rendezésére. Ezt megtehetjük "kézzel", valamelyik ismert rendezés algoritmus felhasználásával, vagy hagyatkozhatunk az általunk használt nyelv standard könyvtárában található rendezés implementációra. A prioritási sornál látottakhoz hasonlóan máshogy kell eljárni primitív típusú adatok rendezésekor, és máshogy, amikor általunk definiált osztályba tartozó objektumokat rendezünk. Ez utóbbi esetben meg kell írnunk az összehasonlítást végző függvényt. Szintén a prioritási sorra hivatkozva fontos tudnunk, hogy a standard rendezés kétértékű vagy háromértékű összehasonlító függvényt vár. Rendezés standard könyvtári eljárásokkalJavaPrimitív típusú adatok rendezéseimport java.util.Arrays; class rend { public static void main(String args[]) { int[] T = {3,44,51,2,10,-6,21,8,6,4,22}; Arrays.sort(T); for(int x : T) System.out.print(x+" "); System.out.println(); } } Objektumok rendezéseimport java.util.Arrays;
class Tanulo implements Comparable<Tanulo> { String nev; int magassag; public Tanulo(String nevem, int magassagom) { nev = nevem; magassag = magassagom; } public int compareTo(Tanulo masik) { return this.magassag - masik.magassag; } public String toString() { return nev + " ("+magassag+" cm) "; } } class ObjektumRendezes { public static void main(String args[]) { Tanulo[] T = new Tanulo[5]; T[0] = new Tanulo("Pisti", 194); T[1] = new Tanulo("Judit", 160); T[2] = new Tanulo("Elemér", 181); T[3] = new Tanulo("Ágnes", 154); T[4] = new Tanulo("Viola", 199); Arrays.sort(T); for(Tanulo x : T) System.out.print(x+" "); System.out.println(); } } C++#include <iostream> #include <algorithm> using namespace std; int main() { int T[] = {3,44,51,2,10,-6,21,8,6,4,22}; const int size = 11; sort(T, T+size); for (int i = 0; i < size; ++i) cout << T[i] << " "; cout << endl; return 0; } #include <iostream> #include <algorithm> #include <string> using namespace std; struct Tanulo { string nev; int magassag; }; bool cmp(const Tanulo &a, const Tanulo &b) { return a.magassag < b.magassag; } int main() { Tanulo T[5] = { {"Pisti",194}, {"Judit", 160}, {"Elemer", 181}, {"Agnes", 154}, {"Viola", 199}}; sort(T, T+5, cmp); for (int i = 0; i < 5; ++i) cout << T[i].nev << " (" << T[i].magassag << ") "; cout << endl; return 0; } Feladatok |