java:taulukot:lajittelu
Sisällysluettelo
Taulukoiden lajittelu
Taulukko voidaan lajitella monella eri tavalla
Vaihtolajittelu
class VaihtoLajittelija { int temp; public void lajittele(int[] taulukko) { for (int k = 0; k < taulukko.length - 1; k++) { for (int l = k+1; l < taulukko.length; l++) { if (taulukko[k] > taulukko[l]) { temp = taulukko[k]; taulukko[k] = taulukko[l]; taulukko[l] = temp; } } } } }
Valintalajittelu
class ValintaLajittelija { public static void lajittele(int[] luvut ) { int index, scan, min, temp; for (index = 0; index < luvut.length; index++) { min = index; for (scan = index + 1; scan < luvut.length; scan++) { if (luvut [scan] < luvut [min]) min = scan; } temp = luvut[min]; luvut[min] = luvut[index]; luvut[index] = temp; } } }
Lisäyslajittelu
class LisaysLajittelija { public static void lajittele(int[] luvut ) { int index, avain, paikka; for (index = 1; index < luvut.length; index++) { avain = luvut[index]; paikka = index; while (paikka > 0 && luvut[paikka-1] > avain) { luvut[paikka] = luvut[paikka-1]; paikka--; } luvut[paikka] = avain; } } }
Quick-lajittelu
class QuickSortLajittelija { public void lajittele(int eka, int viimeinen, int[] taulukko) { int temp; int alku, vasen, oikea; vasen = eka; oikea = viimeinen; alku = taulukko[(eka + viimeinen)/2]; do { while (taulukko[vasen] < alku) vasen = vasen + 1; while (alku < taulukko[oikea]) oikea = oikea - 1; if (vasen <= oikea) { temp = taulukko[vasen]; taulukko[vasen] = taulukko[oikea]; taulukko [oikea] = temp; vasen = vasen + 1; oikea = oikea -1; } } while ((oikea > vasen)); if (eka < oikea) lajittele(eka, oikea, taulukko); if (vasen < viimeinen) lajittele(vasen, viimeinen, taulukko); } }
Shell-lajittelu
class ShellLajittelija { public void lajittele(int[] taulukko) { int valimatka, maara = taulukko.length, temp; boolean vaihto=true; valimatka = maara/2; do { do { vaihto = false; for (int k = 0; k < (maara - valimatka); k++) { if (taulukko[k] > taulukko[k + valimatka]) { temp = taulukko [k]; taulukko[k] = taulukko[k + valimatka]; taulukko[k + valimatka] = temp; vaihto = true; } } } while(vaihto); } while ((valimatka /= 2) > 0); } }
Kuplalajittelu
class KuplaLajittelija { public void lajittele(int[] taulu) { int temp; for (int i=taulu.length; i > 0; i--) { for (int j=0; j < i-1;j++) if (taulu[j] > taulu[j+1]) { temp = taulu[j]; taulu[j] = taulu[j+1]; taulu[j+1] = temp; } } } }
java/taulukot/lajittelu.txt · Viimeksi muutettu: 2015/08/13 16:54 / 127.0.0.1
