Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    55

    [Java] Merge Sort su liste concatenate

    Ciao a tutti, desideravo avere il vostro aiuto per ordinare una lista semplicemente concatenata con l'algoritmo Merge Sort.
    So applicare questo metodo sugli array ma mi viene molto complesso applicarlo alle liste.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    A parte il fatto che hai sbagliato sezione... Che problema incontri? Che codice hai scritto?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    55
    Come devo comportarmi con lo spostamento dei nodi?
    codice:
    	/*ALGORITMO DI ORDINAMENTO MERGESORT PER LE LISTE*/		
    		static void mergesortL (Lista L)
    			{
    				mergesortL (L, 0, L.getSize()-1);
    			}
    	    
    		static void mergesortL (Lista L, int first, int last)
    			{
    				if (first < last)
    					{
    						int mid = (first + last) / 2;
    						mergesortL (L, first, mid);
    						mergesortL (L, mid+1, last);
    						mergeL (L, first, last);
    					}
    			} 
    
    		static void mergeL (Lista L, int first, int last)
    			{
    				Lista temp = new Lista ();
    			
    				int mid = (first + last) / 2;
    				int i1 = 0, i2 = first, i3 = mid + 1;
    				while (i2 <= mid && i3 <= last)
    				{
    					Nodo aux1=L.getNodo(i2), aux2=L.getNodo(i2), aux3=L.getNodo(i3);
    					if ( L.getNodo(i2).getInfo()>L.getNodo(i3).getInfo() )
    					{
    						temp.getNodo(i1).setNext( new Nodo (L.getNodo(i2).getInfo()) );
    						i1++;
    						i2++;
    					}	
    					else
    					{
    						
    						
    						temp.getNodo(i1).setNext(new Nodo (L.getNodo(i3).getInfo()));
    						i1++;
    						i3++;
    					}
    				}
    					
    				while (i2 <= mid)
    					{
    						temp.getNodo(i1).setNext( new Nodo (L.getNodo(i2).getInfo()) );
    						i1++;
    						i2++;
    					}	
    				while (i3 <= last)
    					{
    						temp.getNodo(i1).setNext(new Nodo (L.getNodo(i3).getInfo()));
    						i1++;
    						i3++;
    					}
    				//for (i1 = 0, i2 = first; i2 <= last; array[i2++] = temp[i1++]);
    					
    			}

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.