RačunalaProgramiranje

Sortiranje tehnike u programiranju: sortiranje „mjehurić”

mjehurić vrsta ne samo smatra se najbrže metode, štoviše, ona zatvara popis najsporijim načina organiziranja. Međutim, to ima svoje prednosti. Dakle, metoda sortiranja mjehur - najviše da ni je prirodno i logično rješenje problema, ako želite organizirati stavke u određenom redoslijedu. Obična osoba ručno, na primjer, to će ih koristiti - samo intuicijom.

Gdje je tu neobično ime?

Metoda ime pojavilo, koristeći analogiju mjehurića zraka u vodi. To je metafora. Baš kao mali mjehurići zraka rasti prema gore - jer im je gustoća veća od tekućine (u ovom slučaju - voda), i svaki element matrice, to je vrijednost, postupan način na vrhu popisa brojeva manji.

Opis algoritma

mjehurić vrsta izvodi se na sljedeći način:

  • prvog prolaska: elementi polja brojevima zauzimaju dva para i uspoređivati. Ako neki elementi Dvosjed tim prvim vrijednosti veće od drugog, program omogućuje im razmjenu mjesta;
  • prema tome, najveći broj promašaja kraj polja. Dok su svi ostali elementi ostaju kao što su bili, na kaotičan način, te zahtijevaju razvrstavanje;
  • te stoga zahtijevaju drugi točno: izrađeno je po analogiji s navedenim (već opisano) i ima određen broj usporedbe - minus on;
  • kod prolaza broj tri usporedbe, jedan manje od drugog, a dva, od prvog. I tako dalje;
  • sažeti da je svaki odlomak ima (sve vrijednosti u polju, posebno broj) minus (prolaz broj) usporedbe.

Čak i kraće algoritam programa može se zapisati kao:

  • niz brojeva provjerava sve dok se bilo koja dva broja pronašao, drugi od njih je dužan da se više nego prije,
  • pogrešno postavljen u odnosu na svaki drugi elementi niz softverskih swapova.

Pseudokod temelji na algoritmu opisanom

Najjednostavnija primjena provodi se na sljedeći način:

Sortirovka_Puzirkom postupak;

početak

ciklus od j nachalnii_index na konechii_index;

ciklus: i iz nachalnii_index do konechii_index-1;

Ako massiv [i]> massiv [i + 1] (prvi element više od jedne sekunde), a zatim:

(Promjena mjesta vrijednosti);

kraj

Naravno, to jednostavnost samo pogoršava situaciju: jednostavniji algoritam, to više manifestira sve nedostatke. Omjer uloženog vremena je prevelika čak i za malu lepezu (ovdje dolazi u relativnosti: Količina vremena za laik može činiti malo, ali u stvari programer svaki drugi ili čak milisekundni broji).

Bilo je bolje provođenje. Na primjer, uzimajući u obzir razmjenu vrijednosti u array mjestima:

Sortirovka_Puzirkom postupak;

početak

sortirovka = true;

ciklusa do sortirovka = istinito

sortirovka = false;

ciklus: i iz nachalnii_index do konechii_index-1;

Ako massiv [i]> massiv [i + 1] (prvi element više od jedne sekunde), a zatim:

(Promjena elementi mjesta);

sortirovka = true; (Utvrdila da razmjena je napravio).

Kraj.

ograničenja

Glavni nedostatak - trajanje postupka. Koliko vremena izvodi algoritam za sortiranje balon?

Olovo vrijeme se izračunava iz broja kvadrata brojeva u nizu - krajnji rezultat toga je proporcionalan.

Ako je najgori slučaj polje je prošao onoliko puta koliko ima elemente minus jedne vrijednosti. To se događa jer na kraju postoji samo jedan element, koji nemaju ništa za usporedbu, a posljednji prolaze kroz niz postaje beskorisno djelovanje.

Osim toga, učinkovita metoda sortiranja jednostavnu razmjenu, kako ga nazivaju, samo za polja male veličine. Velike količine podataka uz pomoć procesa neće raditi: rezultat će biti pogreška ili neuspjeh programa.

dostojanstvo

mjehurić vrsta je vrlo lako razumjeti. Se programi tehničkih sveučilišta u proučavanju naručivanje elementi njegove niz prolaz na prvom mjestu. Metoda je lako provesti oba Delphi programskom jeziku (L (Delphi), i C / C ++ (C / C plus plus), nevjerojatno jednostavne vrijednosti algoritma mjesto u pravom redoslijedu, a na Pascal (Pascal). Mjehurić vrsta je idealna za početnike.

Zbog nedostataka algoritma ne koristi u izvannastavnim svrhe.

Princip vizualni sortiranje

Početni pogled polja 4 74 8 22 44 37 1 7

Korak 8 22 4 1 74 44 37 1 7

22 4 74 8 44 1 37 7

4 74 8 22 1 44 37 7

8 22 4 1 74 44 37 7

22 1 4 8 74 44 37 7

1 22 4 8 74 44 37 7

8 22 4 1 74 44 37 7

Korak 8 22 2 1 74 4 44 7 37

8 4 22 1 74 7 44 37

1 8 22 4 7 74 44 37

1 8 22 4 7 74 44 37

8 4 22 1 74 7 44 37

8 22 1 4 7 74 44 37

Korak 4 1 8 3 22 7 74 37 44

8 22 1 4 7 37 74 44

8 22 1 4 7 37 74 44

8 7 4 1 22 37 74 44

7 8 4 1 22 37 74 44

Korak 1 4 7 4 8 22 37 44 74

7 8 4 1 22 37 44 74

7 8 4 1 22 37 44 74

7 8 4 1 22 37 44 74

Korak 1 4 7 5 8 22 37 44 74

7 8 4 1 22 37 44 74

7 8 4 1 22 37 44 74

Korak 1 4 7 6 8 22 37 44 74

7 8 4 1 22 37 44 74

Korak 1 4 7 7 8 22 37 44 74

bubble sortiranje primjer u Pascalu

primjer:

const kol_mas = 10;

var massiv: polje [1..kol_mas] o cijeli broj;

a, b, k: broj;

početi

writeln ( 'input', kol_mas, 'elementi polja');

za a = 1 do kol_mas do readln (massiv [a ]);

za a = 1 do kol_mas-1 činiti započeti

za b = a + 1 do kol_mas ne počnu

Ako massiv [a]> massiv [ b] tada počinje

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

kraj;

kraj;

kraj;

writeln ( 'nakon vrste);

za a = 1 do kol_mas do writeln (massiv [a ]);

kraj.

Primjer mjehura sortiranje u C jeziku (C)

primjer:

#include

#include

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

{

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

za (;;) {

ff = 0;

za (i = 7, i> 0; i -) {

if (massiv [i] 'massiv [l- 1]) {

zamjena (massiv [I], massiv [l- 1]);

ff ++;

}

}

if (ff == 0) probiti;

}

getch (); // kašnjenje prikaza

povratak 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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