Računala, Programiranje
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