Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - Nuovo algoritmo di ordinamento
Forum - Algoritmi - Nuovo algoritmo di ordinamento - Pagina 4

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
Daf (Normal User)
Pro


Messaggi: 78
Iscritto: 27/06/2009

Segnala al moderatore
Postato alle 12:09
Lunedì, 29/06/2009
PASCAL

Codice sorgente - presumibilmente Delphi

  1. unit OrdPascal;
  2.  
  3. interface
  4.  
  5. procedure ORDINA(vet: array of Integer, Inizio, Fine: Integer);
  6.  
  7. implementation
  8.  
  9. procedure SWAP(a, b: Pointer);
  10. var
  11.   aus: Pointer;
  12. begin
  13.   aus := a;
  14.   a   := b;
  15.   b   := aus;
  16. end;
  17.  
  18. procedure ORDINA(vet: array of Integer, Inizio, Fine: Integer);
  19. var
  20.   I, max, min: Integer;
  21. begin
  22.   if(Inizio >= Fine)then
  23.     Exit;
  24.    min := Inizio;
  25.    max := Fine;
  26.    for I := Inizio to Fine do
  27.    begin
  28.      if(vet[I] > vet[max])then
  29.        max := I
  30.      else
  31.        if(vet[I] < vet[min])then
  32.          min := I;
  33.    end;
  34.    SWAP(@vet[min], @vet[Inizio]);
  35.    if(max==Inizio)then
  36.      max := min;
  37.    SWAP(@vet[max], @vet[Fine]);
  38.    ORDINA(vet, Inizio + 1, Fine - 1);
  39. end;


C'è una cosa particolare: NON SERVONO LIBRERIE! :k:

PM
Avatar
Daf (Normal User)
Pro


Messaggi: 78
Iscritto: 27/06/2009

Segnala al moderatore
Postato alle 12:13
Lunedì, 29/06/2009
Funzia anke su Delphi

PM
Avatar
MrC (Member)
Newbie


Messaggi: 19
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 23:07
Martedì, 29/06/2010
Non per avvilire tutti coloro che in futuro tenteranno...

ma c'è una dimostrazione matematica (cioè certa)

che ogni algoritmo di ordinamento (a parte proprietà particolari dei dati)

non può avere una complessità asintotica migliore di O( n * log(n) )

:om:

PM
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 19:02
Mercoledì, 30/06/2010
si, si chiama lower bound per comparison sort.
se un algoritmo di ordinamento basa il suo funzionamento sui confronti, per ordinare n elementi deve fare almeno n log n.

altri algoritmi ordinano in O(n) basandosi su altri stratagemmi

PM
Avatar
MrC (Member)
Newbie


Messaggi: 19
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 23:02
Venerdì, 16/07/2010
E io cos'ho detto?! :D

PM
Pagine: [ 1 2 3 4 ] Precedente | Prossimo