Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] Ordinare Lista senza usare Sort

    Vi chiedo timidamente se esistono metodi migliori per ordinare una lista di stringhe senza utilizzare il metodo Sort (troppo facile eh?)

    E' uno di quegli esercizi da "compito in classe", lo so, ma nonostante ci abbia pensato un pò non sono riuscito a pensare a niente di diverso da una ricorsiva di questo tipo (Console Application)
    codice:
    using System;
    using System.Collections.Generic;
    
    namespace ManualSorting
    {
    
    	class StringList : List<string>
    	{
    		public void SortOrder()
    		{
    			this.SortOrder("asc");
    		}
    		public void SortOrder(string way)
    		{
    			bool modified = false;
    			string item = "";
    			way = way.ToLower();
    			for (int index = 1; index < this.Count; index++)
    			{
    				if (
    					(way == "asc" && this[index].CompareTo(this[index - 1]) < 0)
    					||
    					(way == "desc" && this[index].CompareTo(this[index - 1]) > 0))
    				{
    					item = this[index];
    					this[index] = this[index - 1];
    					this[index - 1] = item;
    					modified = true;
    				}
    			}
    			if (modified)
    				this.SortOrder(way);
    		}
    	}
    
    	class Program
    	{
    		static void Main(string[] args)
    		{
    			StringList nomi = new StringList();
    			nomi.Add("Giancarlo");
    			nomi.Add("Andrea");
    			nomi.Add("Daniele");
    			nomi.Add("Fabio");
    			nomi.Add("Stefano");
    			nomi.Add("Davide");
    			nomi.SortOrder("asc");
    			foreach (string item in nomi)
    				Console.WriteLine(item);
    			Console.ReadLine();
    		}
    	}
    }
    Qualcuno sa dirmi se a livello accademico si utilizzano metodi migliori e quali?
    Grazie
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #2

  3. #3
    Originariamente inviato da albgen
    http://it.wikipedia.org/wiki/Merge_sort
    intanto grazie, senza nemmeno volerlo ho scoperto di aver fatto un bubblesort ottimizzato (flag booleana), mi domando peròquale sia l'algoritmo migliore (in termini di costi)

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    quello che ti ho segnalato è il migliore.
    ha complessità nlogn.
    ci sono anche altri con complessità nlogn
    guada la tabellina
    http://it.wikipedia.org/wiki/Algoritmo_di_ordinamento
    I got the remedy

  5. #5
    l'ho vista ma non so valutare quale sia il migliore.

    Non perchè non mi fidi del tuo parere o di quanto scritto in wikipedia, semplicemente perchè tra chiamate multiple senza spreco di memoria (1 booleano, 1 riferimento ad un elemento, indici scambiati, nessuna nuova lista) e ricorsività (che ha dei limiti) con spreco di memoria preferirei la prima ... boh, magari sbaglio

    grazie lostesso
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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 © 2025 vBulletin Solutions, Inc. All rights reserved.