Pereiti prie turinio

Rekomenduojami pranešimai

Tai va, esme viso sito, jog noriu surikiuoti objektu arraylista pagal viena lauka (int count, mazejimo tvarka), bet kazkodel neteisingai rikiuoja. Nezinau kame kampas :|

 

		Collections.sort(knyguSarasas, new Comparator<Object>()
	{
		@Override
		public int compare(Object o1, Object o2)
		{
			int count1 = ((Knyga)o1).getCount();
			int count2 = ((Knyga)o2).getCount();
			if (count1 > count2) return -1;
			else if (count1 < count2) return 1;
			else return 0;
		}	
	});

Dekui uz pagalba.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Radau iš to laiko kai mokiausi Java vieno uždavinio, kuriame reikėjo sortinti, sprendimą.

public static void selectionSort(ArrayList<String> list) {
for (int i = 0; i < list.size() - 1; i++) {
	for (int j = i + 1; j < list.size(); j++) {
		if (list.get(i).compareTo(list.get(j)) > 0) {
			String temp = list.get(i);
			list.set(i, list.get(j));
			list.set(j, temp);
		}
	}
}
}

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai va, esme viso sito, jog noriu surikiuoti objektu arraylista pagal viena lauka (int count, mazejimo tvarka), bet kazkodel neteisingai rikiuoja. Nezinau kame kampas :|

 

		Collections.sort(knyguSarasas, new Comparator<Object>()
	{
		@Override
		public int compare(Object o1, Object o2)
		{
			int count1 = ((Knyga)o1).getCount();
			int count2 = ((Knyga)o2).getCount();
			if (count1 > count2) return -1;
			else if (count1 < count2) return 1;
			else return 0;
		}	
	});

Dekui uz pagalba.

 

O ka reiskia "neteisingai" ? isrikiuoja didejancia tvarka, ar isvis neisrykiuoja? jei didejancia tvarka - tai sukeisk palyginimo zenklus. jei neisrikiuoja - tai gal isvis nekviecia jis sito metodo? debugint nebandei?

 

Ispirit - cia tavo pateiktas pats leciausias rusiavimo algoritmas :) runtime dazniausiai naudoja QuickSort, tai per ji geriau ir daryt, jei jau nesinori paciam kazko mandro programint.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O ka reiskia "neteisingai" ? isrikiuoja didejancia tvarka, ar isvis neisrykiuoja? jei didejancia tvarka - tai sukeisk palyginimo zenklus. jei neisrikiuoja - tai gal isvis nekviecia jis sito metodo? debugint nebandei?

 

Ispirit - cia tavo pateiktas pats leciausias rusiavimo algoritmas :) runtime dazniausiai naudoja QuickSort, tai per ji geriau ir daryt, jei jau nesinori paciam kazko mandro programint.

Rikiuoja, bet neteisingai. (Del didejimo/mazejimo tai zinau)

Va sioks toks pvz.

Nesurikiuotas:

Title1

Title2

Title3

Title4

Title5

Surikiuotas:

Title2 (count 1) Sitas pirmas, jei neklystu, vien del to jog list'e stovi pirmiau uz Title5 :(

Title5 (count 2) Sitas turetu but pirmas

Title7 (count 1)

Title1

Title3

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ispirit - cia tavo pateiktas pats leciausias rusiavimo algoritmas :) runtime dazniausiai naudoja QuickSort, tai per ji geriau ir daryt, jei jau nesinori paciam kazko mandro programint.

 

Žinau, kad lėčiausias =]

 

Šiaip quicksort nėra pats greičiausias metodas nes jis irgi iteratina per beveik visa arraylist kiekviena kartą kai tik ivyksta rekurcija. Šiaip yra atveju kai quicksort gali tapti pačiu lėčiausiu sort algoritmu, mat jo best scenario yra O(nlogn) o worst O(n^2). Šiaip vienas iš geriausių sort algoritmų mano manymu yra Merge Sort, nes jo best ir worst case scenario yra O(nlogn), nors yra ir algoritmų, kurių runtime yra O(|S|+n), tik jiems reikia atitinkamos situacijos, kad veiktų.

 

Aplamai nėra patartina sortinti listų, geriau idėjimo į lista metu pasirūpinti tuom, nes metodai atsakingi už tai yra keletą, jei ne kelioliką, kartų greitesni.

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žinau, kad lėčiausias =]

 

Šiaip quicksort nėra pats greičiausias metodas nes jis irgi iteratina per beveik visa arraylist kiekviena kartą kai tik ivyksta rekurcija. Šiaip yra atveju kai quicksort gali tapti pačiu lėčiausiu sort algoritmu, mat jo best scenario yra O(nlogn) o worst O(n^2). Šiaip vienas iš geriausių sort algoritmų mano manymu yra Merge Sort, nes jo best ir worst case scenario yra O(nlogn), nors yra ir algoritmų, kurių runtime yra O(|S|+n), tik jiems reikia atitinkamos situacijos, kad veiktų.

 

Aplamai nėra patartina sortinti listų, geriau idėjimo į lista metu pasirūpinti tuom, nes metodai atsakingi už tai yra keletą, jei ne kelioliką, kartų greitesni.

 

Na as ir neteigiau kad quicksort yra greiciausias, ar geriausias - o tik tai, jog runtime bibliotekos, kurios duoda sortinimo funkcionaluma dazniausiai yra implementuotos pagal quicksort.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...