..


Sponsorerede links

Sortering Algoritmer i C

Artikel skrevet af Stefano Cancedda
Side 1 af 5

En cipher er en sekvens af slags operationer, der tildeler prioritet til en orden af elementer i en bestemt rækkefølge i henhold til en rapport. Disse linjer vil blive udsat for de mest almindelige (med un'approccio meget orienterede prøver) og hver vil blive kommenteret på de fordele og mangler.
For enkelhed i de eksempler, altid vil blive brugt som et sæt af naturlige tal og forholdet af orden som for de fleste, er de algoritmer stadig udsat universelt gyldige, netto af en kort arbejde for at tilpasse koden.

Valg slags

For at bestille et sæt nummer et før og intuition kan blive scannet så mange gange som luftfartsselskabet sin helhed, hvor hvert trin søgning efter den mindste værdi og føje den til de bestilte rækkefølge, først identificeres med et andet luftfartsselskab;






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







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







 Trin # 2 -> {1,2, X, X, X}







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







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







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



(X er markeret med en placering af den nye transportør har endnu ikke skrevet)

Fra det synspunkt af plads i hukommelsen, er denne algoritme anvendes på denne måde meget uheldigt, siden det oprindelige sæt er kopieret til en anden. Et simpelt trick er at erstatte de korrigerende kopi samarbejde med udveksling af den mindste værdi, lige fundet det første element, der ikke er en del af den delmængde af numrene allerede bestilt.






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







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







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







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







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



Den cipher ændres Selection Sorter, der følger en eventuel 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 positionerne i vektor v iey



   



 }







 }



Den dobbelte løkke er beliggende gætte på, at antallet af sammenligninger, som denne algoritme er en kvadratisk end antallet af elementer.
Det betyder, at en række sammenligninger er lavet på bestilling af størrelsesorden svarende til kvadratet på antallet af elementer i samlingen.
Bemærk, at i normale tilfælde er det antallet af sammenligninger til at veje den effektivitet og de resterende operationer, de fleste opgaver, har en ubetydelig omkostning i forhold til sammenligningen.
Når du har at bestille optegnelser af betydelig størrelse, antallet af udvekslinger har en afgørende indflydelse på ydelsen. I det andet tilfælde, viser det valg Arranger at være en fremragende løsning og optimalt, fordi hvert element er flyttet højst en gang.

Det valg Arranger er også en stabil algoritme.
En stabil algoritme bevarer effekten af ​​tidligere ordrer i tilfælde af datastrukturer behandles i flere nøgler, såsom som fuldt navn:






 1.

 



 Charles Green







 2.

 



 Andrea Rossi







 3.

 



 Mario Rossi







 4.

 



 Luciano Bianchi



Vi bestille felter til fornavn:





 1.

 



 Andrea Rossi







 2.

 



 Charles Green







 3.

 



 Mario Rossi







 4.

 



 Luciano Bianchi



Nu har vi rækkefølge efter efternavn, vil en mere stabil algoritme bevare forrang din første, eller, i tilfælde af stemmelighed mellem tasterne, som du bestiller, placeringen af ​​den første ordre til at bestemme den endelige placering er.





 1.

 



 Luciano Bianchi







 2.

 



 Andrea Rossi







 3.

 



 Mario Rossi







 4.

 



 Charles Green



En stabil algoritme vil sikre, at i dette tilfælde altid går forud Mario Rossi Andrea Rossi. Man behøver ikke have en stabil adfærd er ikke forudsigelig, så dette kunne blive vendt position 2 og 3.

Udvælgelsen slags er også på stedet.
En algoritme er sagt på stedet (eller endda på plads), hvis den ikke tager en ekstra plads i hukommelsen, end den oprindelige database, eller det er en lille konstant beløb.

I den samme kategori ...
E-Learning
Flash MX og ActionScript (Kursus) Flash MX og ActionScript (Kursus)
Bliv en udvikler af web-sites fra 29 €.
Ruby og Ruby on Rails (Kursus) Ruby og Ruby on Rails (Kursus)
Opret software og web-applikationer med Ruby og RoR. Fra 39 €.
Web Marketing (kursus) Web Marketing (kursus)
Site fremme, søgemaskiner og markedsføring. Fra 39 €.
Sponsorerede links