KompiuteriaiProgramavimas

Rūšiavimo metodus programavimo: rūšiavimas "burbulas"

burbulas rūšiuoti ne tik laikomas sparčiausiai metodą, be to, jis uždaro lėčiausiai būdų organizuoti sąrašą. Tačiau ji turi savo privalumų. Taigi, rūšiavimas burbulas metodas - labiausiai, kad nei yra natūralus ir logiškas problemos sprendimas, jei norite organizuoti tam tikra tvarka elementus. Paprastas žmogus rankiniu būdu, pavyzdžiui, ji bus juos naudoti - tiesiog intuicija.

Kur tokį neįprastą vardą?

Metodo pavadinimas kilo, naudojant oro burbuliukų vandens analogiją. Tai metafora. Tiesiog kaip maži oro burbuliukai pakiltų į viršų - nes jų tankis yra didesnis nei skysčio (šiuo atveju - vandens), ir kiekvieną masyvo elementą, tuo mažesnis yra, vertės, tuo daugiau laipsniškas būdas sąrašo numeriais viršuje.

Aprašymas algoritmo

burbulas rūšiuoti atliekamas taip:

  • pirmasis perdavimas: masyvo skaičių elementai yra priimami dviejų porų ir taip pat palyginti. Jei kai kurie iš šių dviejų žmonių komanda pirmą vertės elementai yra didesnis už antrąjį, programa daro juos keitimo vietas;
  • Todėl, didžiausias skaičius nepraleistų masyvo pabaigos. Nors visi kiti elementai liktų kaip jie buvo, chaotiška tvarka, ir reikalauja daugiau rūšiavimas;
  • ir todėl reikalauja antrą perdavimo: jis yra pagamintas pagal analogiją su ankstesnis (jau aprašyta) ir turi palyginti skaičių - minus vieną;
  • ne ištrauka skaičius trys palyginimus, viena mažiau nei sekundę, o du, nei pirmasis. Ir tt;
  • apibendrinti, kad kiekvienas praėjimas yra (visi masyvo vertybes, ypač numeris) minuso (ištrauka numeris) palyginimų.

Net trumpesnis algoritmas programos gali būti parašytas kaip:

  • skaičių masyvas yra tikrinama tol, kol bet du skaičiai yra rastas, antras iš jų privalo būti didesnė nei pirmoji;
  • teisingai padėtas viena kitos atžvilgiu elementų masyvo programinės įrangos sandorius.

Pseudocode remiantis aprašytu algoritmu

Paprasčiausias įgyvendinimas atliekamas taip:

Sortirovka_Puzirkom procedūra;

pradžia

ciklas jnachalnii_index į konechii_index;

ciklas inachalnii_index į konechii_index-1;

jei massiv [i]> massiv [i + 1] (pirmasis elementas didesnis nei per sekundę), tada:

(Pakeisti Vietos vertes);

pabaiga

Žinoma, tai paprastumas sunkina tik situacija: paprastesnis algoritmas, tuo daugiau jis pasireiškia visus trūkumus. Investiciniai santykis metu yra per didelis, net už nedidelį masyvo (čia ateina reliatyvumo: Kiek laiko skirti žmogui gali atrodyti nedidelis, bet iš tikrųjų programuotojas kas antra ar net milisekundė).

Jis paėmė geresnį įgyvendinimą. Pavyzdžiui, atsižvelgiant į vertybių mainus masyvo vietose:

Sortirovka_Puzirkom procedūra;

pradžia

sortirovka = true;

ciklas, kol sortirovka = true;

sortirovka = klaidinga;

ciklas inachalnii_index į konechii_index-1;

jei massiv [i]> massiv [i + 1] (pirmasis elementas didesnis nei per sekundę), tada:

(Pakeisti elementai vietas);

sortirovka = true; (Nustatyta, kad keitimasis buvo padaryta).

Pabaiga.

trūkumai

Pagrindinis trūkumas - kad proceso trukmė. Kiek laiko yra atliekamas rikiavimo algoritmas burbulas?

Švinas laikas skaičiuojamas nuo kvadratinių numerių skaičius masyve - galutinis rezultatas tai yra proporcinga.

Jei blogiausiu atveju masyvas yra perduodama tiek kartų, kiek jis turi elementus minus viena reikšme. Tai atsitinka todėl, kad, galų gale, yra tik vienas elementas, kuris neturi nieko lyginti, ir paskutinis pro masyvo tampa nenaudingas veiksmas.

Be to, efektyvus metodas rūšiavimas paprastą keitimąsi, kaip jis vadinamas, tik masyvų mažo dydžio. Dideli duomenų kiekiai su proceso pagalba neveiks: rezultatas bus arba klaida arba gedimas programą.

orumas

burbulas rūšiuoti yra labai lengva suprasti. Techninių universitetų ir užsakymo elementų savo masyvas studijų programos pereiti į pirmą vietą. Šis metodas yra lengva įgyvendinti tiek Delphi programavimo kalba (L (Delphi) ir C / C ++ (C / C plius plius), neįtikėtinai paprastas vertybes vietos algoritmas teisinga tvarka ir tuo Paskalis (Pascal). Burbulas rūšiuoti idealiai tinka pradedantiesiems.

Dėl algoritmo trūkumus nenaudojama popamokinės tikslais.

Vaizdo rūšiavimas principas

Pradinis vaizdas masyvo 8 22 4 74 44 37 1 7

1 žingsnis 8 22 4 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

2 žingsnis 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

Žingsnis 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

4 žingsnis 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

5 žingsnis 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

6 žingsnis 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

7 žingsnis 1 4 7 8 22 37 44 74

burbulas rūšiuoti pavyzdys Pascal

pavyzdys:

const kol_mas = 10;

var massiv: masyvo [1..kol_mas] iš sveikojo skaičiaus;

a, b, K: sveikas skaičius;

pradėti

writeln ( "įvesties", kol_mas, "elementai, matricos ');

dėl: = nuo 1 iki kol_mas padaryti readln (massiv [a ]);

dėl: = 1 kol_mas-1 do pradėti

B: = a + 1 kol_mas nereikia pradėti

jei Massiv [A]> Massiv [ b] tada pradėti

k: = massiv [a]; massiv [a]: = massiv [ b]; massiv [b]: = K;

galų;

galų;

galų;

writeln ( 'po Rūšiuoti');

dėl: = nuo 1 iki kol_mas padaryti writeln (massiv [a ]);

pabaigos.

PAVYZDYS burbulas rūšiavimas C kalba (C)

pavyzdys:

#include

#include

INT pagrindinis (INT argc, simbolis * argv [])

{

INT massiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, ff;

už (;;) {

ff = 0;

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

jei (massiv [i] [i- 1]) {

apsikeitimo (massiv [i], massiv [i- 1]);

FF ++;

}

}

jei (ff == 0) pertrauka;

}

getch (); // ekranas vėlavimas

grįžti 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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