KomputerProgramming

Techniques ing program ngurutake: ngurutake "gelembung"

gelembung urutan ora mung dianggep dadi cara paling cepet, malih, iku nutup ing dhaptar cara slowest kanggo ngatur. Nanging, iku wis menehi kaluwihan. Mangkono, cara saka ngurutake gelembung - paling sing ora solusi alam lan logis kanggo masalah, yen pengin ngatur item ing urutan tartamtu. Wong biasa kanthi manual, contone, bakal digunakake - mung dening roso.

Where iya kuwi jeneng mboten umum?

jeneng Cara teka munggah, nggunakake analogi saka umpluk online ing banyu. Iku kiasan. Kaya umpluk online sethitik munggah munggah - amarga Kapadhetan sing luwih saka adi (ing ngono - banyu), lan saben unsur Uploaded, cilik iku nilai, cara liyane bertahap ing ndhuwur nomer dhaftar.

Description of algoritma

gelembung urutan wis dileksanakake minangka nderek:

  • pisanan pass: unsur nomer Uploaded dijupuk dening rong pasangan lan uga dibandhingake. Yen sawetara unsur nilai pisanan tim loro-wong iku luwih saka kaloro, program ndadekake wong panggonan exchange;
  • Akibate, nomer paling mbleset mburi Uploaded ing. Nalika kabeh unsur liyane tetep sing lagi padha, ing proses semrawut, lan sing liyane ngurutake;
  • lan mila mbutuhake pass liya: iku digawe dening analogi karo sadurungé (wis diterangake) lan wis sawetara bandingaken - minus one;
  • ing sawetara wacana telu, siji kurang saka kaloro, lan loro, saka pisanan. Lan ing;
  • ngringkes sing saben wacana wis (kabeh nilai ing Uploaded, nomer tartamtu) minus (nomer wacana) bandingaken.

algoritma malah luwih cendhek saka program sing bisa ditulis minangka:

  • Uploaded nomer wis dicenthang anggere sembarang nomer loro sing ketemu, kang kapindho mau wis kaiket dadi luwih saka pisanan;
  • salah dipanggonke ing hubungan kanggo saben unsur saka swaps lunak Uploaded.

Pseudocode adhedhasar algoritma kasebut

Implementasine gampang wis digawa metu minangka nderek:

prosedur Sortirovka_Puzirkom;

diwiwiti

siklus kanggo j saka nachalnii_index kanggo konechii_index;

siklus kanggo i saka nachalnii_index kanggo konechii_index-1;

yen massiv [i]> massiv [i + 1] (unsur pisanan luwih saka liya), banjur:

(Owah-owahan panggonan angka);

pungkasan

Mesthi, gamblang iki mung aggravates kahanan: prasaja algoritma, sing liyane iku manifests kabeh cacat. aspek Investment wektu iku gedhe banget malah kanggo Uploaded cilik (kene rawuh ing rélativitas: Jumlah wektu kanggo awam bisa koyone cilik, nanging nyatane Programmer saben counts kapindho utawa malah milidetik).

Sampeyan njupuk implementasine luwih. Contone, njupuk menyang akun ijol-ijolan nilai ing lokasi Uploaded:

prosedur Sortirovka_Puzirkom;

diwiwiti

sortirovka = bener;

siklus nganti sortirovka = bener;

sortirovka = palsu;

siklus kanggo i saka nachalnii_index kanggo konechii_index-1;

yen massiv [i]> massiv [i + 1] (unsur pisanan luwih saka liya), banjur:

(Ngganti unsur panggonan);

sortirovka = bener; (Dikenali sing ijol-ijolan wis digawe).

Akhir.

watesan

Kerugian utama - wektu proses. Carane akeh wektu wis dileksanakake ngurutake algoritma gelembung?

mimpin wis diitung saka nomer nomer kothak ing Uploaded - ing asil pungkasan iku proporsional.

Yen cilik awon Uploaded wis liwati minangka kakehan wis unsur minus one Nilai. Perkara iki kedadean amarga ing mburi ana mung siji yaiku kang duwe apa-apa kanggo mbandhingaké, lan pass pungkasan liwat Uploaded dadi tumindak guna.

Kajaba iku, cara efektif saka ngurutake tukar prasaja, kaya kang disebut, mung kanggo susunan saka ukuran cilik. akeh data karo bantuan saka proses ora bisa: asil bakal salah siji kesalahan utawa Gagal saka program.

kamulyan

gelembung urutan gampang banget kanggo ngerti. The curricula universitas technical ing sinau saka unsur nindakake saka Uploaded sawijining pass ing Panggonan pisanan. Cara sing gampang kanggo ngleksanakake loro basa Delphi programming (L (Delphi), lan C / C ++ (C / C plus plus), lan nilai luar biasa prasaja saka algoritma lokasi ing urutan tengen lan ing Pascal (Pascal). Gelembung urutan becik kanggo wiwitan.

Amarga drawbacks saka algoritma iki ora digunakake ing tujuan Extracurricular.

asas ngurutake Visual

Dhisikan tampilan saka Uploaded 8 22 4 74 44 37 1 7

Langkah 1 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

Langkah 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

Langkah 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

Langkah 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

Langkah 5 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Langkah 6 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Langkah 7 1 4 7 8 22 37 44 74

gelembung urutan conto ing Pascal

contone:

kol_mas const = 10;

var massiv: Uploaded [1..kol_mas] saka ongko;

a, b, k: ongko;

miwiti

writeln ( 'input', kol_mas, 'unsur Uploaded');

kanggo: = 1 kanggo kol_mas apa readln (massiv [a ]);

kanggo: = 1 kanggo kol_mas-1 apa miwiti

kanggo b: = a + 1 kanggo kol_mas aja miwiti

yen massiv [a]> massiv [ b] banjur miwiti

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

mungkasi;

mungkasi;

mungkasi;

writeln ( 'sawise urutan');

kanggo: = 1 kanggo kol_mas apa writeln (massiv [a ]);

mburi.

CONTO gelembung ngurutake ing basa C (C)

contone:

#include

#include

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

{

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

kanggo (;;) {

ff = 0;

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

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

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

ff ++;

}

}

yen (ff == 0) break;

}

getch (); // tampilan tundha

bali 0;

}.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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