RekenaarsProgrammering

Sorteer tegnieke in programmering: sortering "borrel"

borrel soort is nie net beskou as die vinnigste metode wees, ook, dit sluit die lys van die stadigste manier om te organiseer. Maar dit het sy voordele. So, die metode van sortering borrel - die meeste wat nie 'n natuurlike en logiese oplossing vir die probleem, as jy wil hê dat die items in 'n spesifieke volgorde te reël. 'N gewone mens met die hand, byvoorbeeld, dit sal hulle gebruik - net deur intuïsie.

Waar het so 'n ongewone naam?

Metode naam vorendag gekom, met behulp van die analogie van lugborrels in die water. Dit is 'n metafoor. Net so min lugborrels styg opwaarts - want hulle is digter as 'n vloeistof (in hierdie geval - die water), en elke reeks element, hoe kleiner is dit die waarde, hoe meer geleidelike pad na die top van die lys getalle.

Beskrywing van die algoritme

borrel soort is soos volg uitgevoer:

  • eerste pas: die elemente van die skikking getalle is geneem deur die twee pare en ook vergelyk word. As 'n paar elemente van die twee-man span eerste waarde is groter as die tweede, die program maak hulle ruil plekke;
  • gevolglik, die grootste aantal mis die einde van die skikking. Terwyl al die ander elemente bly soos dit was, in 'n chaotiese wyse, en vereis meer sorteer;
  • en daarom vereis dat 'n tweede slaag: dit is gemaak deur analogie met die vorige (reeds beskryf) en het 'n aantal vergelykings - minus een;
  • by gang nommer drie vergelykings, een minder as die tweede, en die twee, as die eerste. En so meer;
  • som wat elke gang het (alle waardes in die skikking, die bepaalde aantal) minus (gedeelte aantal) vergelykings.

Selfs korter algoritme van 'n program geskryf kan word as:

  • 'n skikking van getalle nagegaan solank enige twee getalle is gevind, die tweede van hulle is gebind om groter wees as die eerste;
  • verkeerd geposisioneer in verhouding tot mekaar elemente van die skikking sagteware swaps.

Pseudokode gebaseer op die beskryf algoritme

Die eenvoudigste implementering is soos volg uitgevoer:

Sortirovka_Puzirkom prosedure;

begin

siklus vir j van nachalnii_index om konechii_index;

siklus vir i van nachalnii_index om konechii_index-1;

As massief [i]> massief [i + 1] (eerste element groter as 'n sekonde), dan:

(Verandering plaas waardes);

einde

Natuurlik, hierdie eenvoud vererger net die situasie: die eenvoudiger die algoritme, hoe meer dit manifesteer al die foute. Belegging verhouding van tyd is te groot, selfs vir 'n klein verskeidenheid (hier kom in relatiwiteit: Die hoeveelheid tyd wat vir die leek kan klein lyk, maar in werklikheid 'n programmeerder elke tweede of selfs millisekonde tel).

Dit het die beter uitvoering. Byvoorbeeld, met inagneming van die uitruil van waardes opgestel plekke:

Sortirovka_Puzirkom prosedure;

begin

sortirovka = true;

siklus totdat sortirovka = true;

sortirovka = vals;

siklus vir i van nachalnii_index om konechii_index-1;

As massief [i]> massief [i + 1] (eerste element groter as 'n sekonde), dan:

(Verander elemente plekke);

sortirovka = true; (Geïdentifiseer wat die ruil gemaak).

Einde.

beperkings

Die grootste nadeel - die duur van die proses. Hoeveel keer word uitgevoer sorteer algoritme borrel?

Lei tyd word bereken uit die aantal vierkante getalle in die skikking - die eindresultaat daarvan is eweredig.

As die ergste geval die skikking soveel keer is verby, want dit het elemente minus een waarde. Dit gebeur omdat die ou end is daar net een element, wat niks te vergelyk het, en die laaste aangee deur die skikking word nutteloos aksie.

Daarbenewens effektiewe metode van sortering n eenvoudige ruil, soos dit genoem word, net vir skikkings van die klein grootte. Groot hoeveelhede data met die hulp van die proses sal nie werk nie: die gevolg sal óf 'n fout of mislukking van die program wees.

waardigheid

borrel soort is baie maklik om te verstaan. Die leerplanne van tegniese universiteite in die studie van die bestel elemente van sy verskeidenheid slaag in die eerste plek. Die metode is maklik om te implementeer beide die Delphi-programmering taal (L (Delphi), en die C / C ++ (C / C plus plus), 'n ongelooflike eenvoudige waardes van plek algoritme in die korrekte volgorde en by die Pascal (Pascal). Borrel soort is ideaal vir beginners.

As gevolg van die nadele van die algoritme is nie gebruik word in buitemuurse doeleindes.

Visuele sortering beginsel

Die aanvanklike siening van die skikking 8 22 4 74 44 37 1 7

Stap 8 22 4 1 74 44 37 1 7

8 22 4 74 44 1 37 7

8 22 4 74 1 44 37 7

8 22 4 1 74 44 37 7

8 22 1 4 74 44 37 7

8 1 22 4 74 44 37 7

1 8 22 4 74 44 37 7

Stap 2 1 8 22 4 74 44 7 37

1 8 22 4 74 7 44 37

1 8 22 4 7 74 44 37

1 8 22 4 7 74 44 37

1 8 4 22 7 74 44 37

1 4 8 22 7 74 44 37

Stap 3 1 4 8 22 7 74 37 44

1 4 8 22 7 37 74 44

1 4 8 22 7 37 74 44

1 4 8 7 22 37 74 44

1 4 7 8 22 37 74 44

Stap 4 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Stap 1 4 7 5 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Stap 1 4 7 6 8 22 37 44 74

1 4 7 8 22 37 44 74

Stap 1 4 7 7 8 22 37 44 74

borrel soort voorbeeld in Pascal

byvoorbeeld:

const kol_mas = 10;

var massief: array [1..kol_mas] van heelgetal;

a, b, k: getal;

begin

writeln ( 'input', kol_mas, 'elemente van verskeidenheid');

vir 'n: = 1 tot kol_mas doen readln (massief [n ]);

vir 'n: = 1 tot kol_mas-1 te doen begin

vir b: = a + 1 tot kol_mas nie begin

As massief [a]> massief [ b] dan begin

k: = massief [a]; massief [a]: = massief [ b]; massief [b]: = k;

eindig;

eindig;

eindig;

writeln ( 'nadat soort');

vir 'n: = 1 tot kol_mas doen writeln (massief [n ]);

einde.

VOORBEELD borrel sorteer in C taal (C)

byvoorbeeld:

# include

# include

int main (int argc, char * argv [])

{

int massief [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, VF;

vir (;;) {

VF = 0;

vir (i = 7; i> 0; i -) {

indien (massief [i] [i- 1]) {

swap (massief [i], massief [i- 1]);

VF ++;

}

}

indien (VF == 0) breek;

}

getch (); // vertoning vertraging

terugkeer 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 af.birmiss.com. Theme powered by WordPress.