[ _boby_ @ 21.02.2010. 21:08 ] @
| Algoritam sortiranja Selection Sort sortira niz u rastućem poretku tako što se u prvom koraku pronalazi najveći element i on razmjenjuje mjesto sa posljednjim elementom niza. Zatim na isti način sortira ostatak niza (tj. kompletan niz osim posljednjeg elementa). Može i obrnuto, da sortira u opadajućem poretku, treba samo malo koda promijeniti. Evo kod za Selection Sort:
public static void selectionSort (int[] niz)
{
int temp,min;
for (int i=0; i<niz.length-1; i++) {
min = i;
for (int j = i+1; j<niz.length; j++)
if (niz[j]<niz[min])
min = j;
temp = niz;
niz = niz[min];
niz[min] = temp;
}
}
Treba napraviti da se u jednom koraku pronalaze najmanji i najveći element niza, oni mijenjaju mjesta sa prvim i posljednjim elementom, i na isti način se sortira ostatak niza.
|
[ miodrags @ 23.02.2010. 12:20 ] @
public static void selectionSort (int[] niz)
{
int l,d,g,temp,min,max;
l= niz.length;
d= 0;
for (int i=d; d<l && i<l-1; i++) {
max = min = i;
for (int j = i+1; j<l; j++)
{
if (niz[j]<niz[min])
min = j;
if (niz[j]>niz[max])
max = j;
}
temp = niz[d];
niz[d] = niz[min];
niz[min] = temp;
temp = niz[l];
niz[l] = niz[max];
niz[max] = temp;
d++;
l--;
}
}
[ miodrags @ 24.02.2010. 16:41 ] @
Evo koda:
Code:
public static void selectionSort (int[] niz)
{
int l,i,j,temp,min,max;
l= niz.length;
for (i=0; i<l-1; i++) {
max = min = i;
for(j = i+1;j<l;j++)
{
if (niz[j]<niz[min]) min = j;
if (niz[j]>niz[max]) max = j;
}
j--;
if(i<min) {
temp = niz[i];
niz[i] = niz[min];
niz[min] = temp;
}
if(max<j) {
temp = niz[j];
niz[j] = niz[max];
niz[max] = temp;
}
l--;
}
}
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.