Galera, to com um problema sobre o Selection Sort…
Achei um codigo na internet que funciona direito, so que com Int, e eu preciso como String… Alguem saberia como mudar ou ajudar?
Ai vai o codigo que eu tenho…
Pra comparar Strings (e também int, double…) você pode generalizar o seu método mudando o seu cabeçalho e algumas linhas do seu código:
voidselectionSort(Comparable[]elementos){
No lugar da antiga variável array_size, você pode obter o mesmo valor fazendo:
elementos.length
E na hora da comparação mesmo, você compara assim:
if(elementos[j].compareTo(elementos[min])<0){
Eu não verifiquei se o seu algoritmo está correto, apenas tô ajudando em como fazer com que ele ordene também objetos de outros tipos, inclusive os tipos primitivos (se você estiver usando pelo menos o Java 5).
Até mais,
L
lucasbritoPJ
Achei outro codigo e ele ta funcionando normal, so que com inteiros, alguem sabe como posso modifica-lo para funcionar com Strings??
Esse é o codigo…
publicclassSelectionSort{privatelong[]a;privateintnElems;publicSelectionSort(intmax){a=newlong[max];nElems=0;}publicvoidinsert(longvalue){a[nElems]=value;nElems++;}publicvoiddisplay(){for(intj=0;j<nElems;j++)System.out.print(a[j]+" ");System.out.println("");}publicvoidselectionSort(){intout,in,min;for(out=0;out<nElems-1;out++)// outer loop{min=out;// minimumfor(in=out+1;in<nElems;in++)// inner loopif(a[in]<a[min])// if min greater,min=in;// a new minswap(out,min);// swap them}}privatevoidswap(intone,inttwo){longtemp=a[one];a[one]=a[two];a[two]=temp;}publicstaticvoidmain(String[]args){intmaxSize=100;SelectionSortarr;// reference to arrayarr=newSelectionSort(maxSize);// create the arrayarr.insert(17);// insert 10 itemsarr.insert(29);arr.insert(34);arr.insert(45);arr.insert(52);arr.insert(68);arr.insert(71);arr.insert(80);arr.insert(96);arr.insert(33);arr.display();arr.selectionSort();arr.display();}}