Oppure

Loading
10/06/11 11:11
bogos
Ciao ragazzi! Stavo progettando un programma che utilizza l'algoritmo di ordinamento per selezione per ordinare una lista di nomi in ordine alfabetico è li passavo come parametro un arry di oggetti String. l'algoritmo funziona benissimo ma in seguito ho voluto memorizzare tali nomi in un Vector anzi che in un arry per poter usufruire dei sui metodi. Ho provato a creare una classe sovraccaricata del metodo selectionSort() ma ho notato che me li ordina in modo ordinato.
//--------------------------------------------------------------------------------
Di seguito vi pubblico il metodo che contiene il bug. Grazie in anticipo!!
public static void InsertionSort(Vector vettore)
	{
		int min;
		String temp;
	     for(int index=0;index<vettore.size()-1;index++)
	     {
	    	 min  = index;
	    	 for (int scan=index+1;scan<vettore.size();scan++)
	    	 {
	    		if ( ((Comparable) vettore.elementAt(scan)).compareTo(vettore.elementAt(min))<0)
	    			min=scan;
	    		//---------------------------
	    		temp = (String) vettore.elementAt(min);
	    		vettore.setElementAt(vettore.elementAt(index), min);
	    		vettore.setElementAt(temp, index);
	    		
	    	 }
	     }
	}
//----------------------------------------------------
//metodo main
//----------------------------------------------------
public static void main(String[] args) throws IOException, ClassNotFoundException {
		// TODO Auto-generated method stub

		
		Vector vector = new Vector();
		vector.add("z");
		vector.add("a");
		vector.add("c");
		vector.add("b");
		vector.add("r");
		vector.add("d");
		vector.add("f");
		

		Cavia.InsertionSort(vector);
		
		for(int count=0; count<vector.size();count++)
		{
			String ssd = (String) vector.elementAt(count);
			System.out.println(ssd);
		}
	}

}


aaa
10/06/11 13:14
Il Totem
Non ho capito cosa intendi per "classe sovraccaricata del metodo selectionSort". Vuoi dire un metodo in overload rispetto a selectionSort? Ma in questo caso non potrebbe chiamarsi InsertionSort. Forse volevi dire un metodo con overload verticale in una classe derivata? Però avrei la stessa osservazione di prima da fare.
Inoltre non riesco a capire cosa significa che te li ordina in modo ordinato (mi sembra l'unico modo possibile di ordinare).
aaa
10/06/11 14:47
bububs
Cancella il metodo insertionSort ke non serve a nulla e nel main fai semplicemente così:
Vector vector = new Vector();
        vector.add("z");
        vector.add("a");
        vector.add("c");
        vector.add("b");
        vector.add("r");
        vector.add("d");
        vector.add("f");
        Collections.sort(vector);   //  Ordina direttamente il vettore
        for(int count=0; count<vector.size();count++){
            String ssd = (String) vector.elementAt(count);
            System.out.println(ssd);
        }
aaa