..


Sponsede Lenker

Sortering Algoritmer i C

Artikkel skrevet av Stefano Cancedda
Side 1 av 5

Et chiffer er en sekvens av typen operasjoner som tildeler prioritere en bestilling av elementer i et sett rekkefølge i henhold til en rapport. Disse linjene vil bli utsatt for den vanligste (med un'approccio sterkt orientert samples) og hver vil bli kommentert på meritter og defekter.
For enkelhet i eksemplene vil alltid bli brukt som et sett av naturlige tall og forholdet av ordre som for de fleste, er algoritmer fortsatt utsatt universelt gyldig, netto etter en kort arbeidet med å tilpasse koden.

Utvalg sort

For å bestille et sett nummer én før og intuisjon kan skannes så mange ganger som bærer sin helhet, med hvert trinn søke etter den laveste verdien og legge den til de bestilte sekvens, først identifisert med en annen transportør;






 Eksempel: {5,1,3,8,2}







 Step # 1 -> {1, X, X, X, X}







 Step # 2 -> {1.2, X, X, X}







 Step # 3 -> {1,2,3, X, X}







 Step # 4 -> {1,2,3,5, X}







 Step # 5 -> {1,2,3,5,8}



(X er merket med en plassering av den nye transportøren har ennå ikke skrevet)

Fra synspunkt av plass i minnet, er denne algoritmen brukt på denne måten svært uheldig siden det første settet er kopiert til et annet. Et enkelt triks er å erstatte korrigerende kopieringen med utveksling av minimumsverdien nettopp funnet den første elementet som ikke er en del av den delen av tallene som allerede er bestilt.






 Eksempel: {5,1,3,8,2}







 Step # 1 -> {1,5,3,8,2}







 Step # 2 -> {1,2,3,8,5}







 Step # 2 -> {1,2,3,8,5}







 Step # 3 -> {1,2,3,5,8}



Den chiffer endres Utvalg Sorter, som følger en mulig implementering:





 sel_sort (int * v, int størrelse)







 {



   



 int i = 0, temp = 0, y = 0, j = 0;



   



 for (i = 0, i = j -)



   



 {

  

      



 {



         



 temp = v [j];



         



 y = j;



      



 }

  

   



 swap (v, i, y) / / Swap stillingene i vektor v iey



   



 }







 }



Den doble Loop er anbrakt antar at antallet sammenligninger gjort av denne algoritmen er av en firkantet enn antall elementer.
Dette betyr at en rekke sammenligninger er laget for å størrelsesorden lik kvadratet av antall elementer i samlingen.
Merk at i normale tilfeller er det antallet sammenligninger til veie effektivitet og de resterende operasjoner, de fleste oppgaver, har en ubetydelig kostnad i forhold til sammenligning.
Når du må bestille registreringer av betydelig størrelse, har antall utvekslinger en avgjørende innflytelse på ytelse. I dette andre tilfellet, beviser Utvalg Sorter å være en utmerket løsning og optimal fordi hvert element er flyttet minst én gang.

Det Utvalg Sortering er også en stabil algoritme.
En stabil algoritme bevarer effekten av tidligere bestillinger i tilfelle av datastrukturer er behandlet i flere nøkler, slik som Fullt Navn:






 1.

 



 Charles Grønn







 2.

 



 Andrea Rossi







 3.

 



 Mario Rossi







 4.

 



 Luciano Bianchi



Vi orden feltene for fornavn:





 1.

 



 Andrea Rossi







 2.

 



 Charles Grønn







 3.

 



 Mario Rossi







 4.

 



 Luciano Bianchi



Nå har vi rekkefølge etter etternavn, vil en mer stabil algoritme bevare forrang av ditt opprinnelige, eller, i tilfelle av stemmelikhet mellom tastene på hvor du bestiller, er plasseringen av den første for å kunne fastslå den endelige plasseringen.





 1.

 



 Luciano Bianchi







 2.

 



 Andrea Rossi







 3.

 



 Mario Rossi







 4.

 



 Charles Grønn



En stabil algoritme vil sikre at i dette tilfellet alltid forut Mario Rossi Andrea Rossi. Man trenger ikke en stabil oppførsel er ikke forutsigbar, så dette kan bli reversert posisjoner 2 og 3.

Valget sort er også på stedet.
En algoritme er sagt på stedet (eller på plass) hvis det ikke tar en ekstra minne plass enn den opprinnelige databasen, eller det er en liten konstant mengde.

I samme kategori ...
E-læring
ASP og Access (Ebook) ASP og Access (Ebook)
Administrerende en MS Access database med ASP. At kun 29 €.
Flash MX og ActionScript (Course) Flash MX og ActionScript (Course)
Bli en utvikler av nettsteder fra 29 €.
HTML (Course) HTML (Course)
Kodespråket for Web fra 29 €.
Sponsede Lenker