/ / Методе сортирања у програмирању: балон сортирање

Технике сортирања у програмирању: мехурасто сортирање

Сорта мехурића не само да се не сматра највишебрза метода, штавише, затвара листу најспоријих метода наручивања. Међутим, то има и својих предности. Дакле, сортирање методом мехурића је најлогичније и најприродније решење проблема ако треба да распоредите елементе у одређеном редоследу. На пример, обична особа ће је користити ручно - само интуицијом.

Одакле ово необично име?

сортирање мехурића

Назив методе измишљен је аналогијом самехурићи ваздуха у води. Ово је метафора. Баш као што се мали мехурићи ваздуха подижу нагоре - на крају крајева, њихова густина је већа од било које течности (у овом случају воде), тако је сваки елемент низа, што је мањи у вредности, то се више постепено пробија на почетак листе бројева.

Опис алгоритма

Сортирање мехурића врши се на следећи начин:

  • први пролазак: елементе низа бројева узимају двојица и такође се упоређују у паровима. Ако је у било која два елемента прва вредност већа од друге, програм замењује њихова места;
  • стога највећи број завршава на крају низа. Док сви остали елементи остају, као што су били, у хаотичном редоследу и даље захтевају сортирање;
  • стога је неопходан други пролаз: направљен је по аналогији са претходним (већ описан) и има број поређења - минус један;
  • пролаз број три има једно поређење мање од другог, а два мање од првог. Итд;
  • да резимирамо, сваки пролаз има (укупне вредности у низу, одређени број) минус (број пролаза) поређења.

сортирање мехурића

Још краћи, алгоритам будућег програма може се написати на следећи начин:

  • низ бројева се проверава док се не нађу било која два броја, а други од њих мора бити већи од првог;
  • програм замењује елементе низа који се нетачно налазе у односу једни на друге.

Псеудоцоде заснован на описаном алгоритму

Најједноставнија примена је следећа:

Процедура Сортировка_Пузирком;

Почетак

циклус за ј од нацхалнии_индек пре него што конецхии_индек;

циклус за и од нацхалнии_индек пре него што конецхии_индек-1;

ако масив [и]> масив [и + 1] (први елемент је већи од другог), затим:

(промените вредности на местима);

крај

Наравно, овде једноставност само погоршаваситуација: што је алгоритам једноставнији, у њему се више појављују сви недостаци. Потрошња времена је превисока чак и за мали низ (овде на сцену ступа релативност: за лаике количина времена може изгледати мало, али у послу програмера свака секунда или чак милисекунда су битне).

Била је потребна боља примена. На пример, узимајући у обзир размену вредности у низу на местима:

Процедура Сортировка_Пузирком;

Почетак

сортировка = тачно;

циклом ћао сортировка = тачно;

сортировка = нетачно;

циклус за и од нацхалнии_индек пре него што конецхии_индек-1;

ако масив [и]> масив [и + 1] (први елемент је већи од другог), затим:

(замените елементе на местима);

сортировка = тачно; (назначено да је размена извршена).

Крај.

Мане методе

Главни недостатак је трајање процеса. Колико траје алгоритам сортирања облачића?

Време извршавања израчунава се из квадрата броја бројева у низу - крајњи резултат је сразмеран њему.

У најгорем случају, низ ће бити пређенонолико пута колико има елемената умањених за једну вредност. То је зато што на крају остаје само један елемент са чиме се ништа не може упоредити, а последњи пролазак кроз низ постаје бескорисна акција.

Поред тога, метод сортирања једноставнимразмене, како се још назива, само за мале низове. Уз његову помоћ неће бити могуће обрадити велике количине података: резултат ће бити или грешке или квар програма.

сорта паска мехурића

Предности

Сортирање мехурића је врло лако за разумевање.У наставним плановима техничких универзитета, у изучавању уређења елемената низа, прво се полаже. Метода је једноставна за имплементацију у програмском језику Делпхи (Д (Делпхи) и Ц / Ц ++ (Ц / Ц плус плус), невероватно једноставан алгоритам за распоређивање вредности у правилном редоследу и у Пасцал-у. Буббле сорт је идеалан за почетнике.

Због недостатака, алгоритам се не користи у ваннаставне сврхе.

Јасан принцип сортирања

Почетни приказ низа 8 22 4 74 44 37 1 7

Корак 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

Корак 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

Корак 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 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 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 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Корак 7 1 4 7 8 22 37 44 74

Пример сортирања мехурића у Пасцалу

алгоритам сортирања облачића

Пример:

цонст кол_мас = 10;

вар массив: низ [1..кол_мас] целог броја;

а, б, к: цео број;

почети

врителн ("инпут", кол_мас, "елементи низа");

за а: = 1 до кол_мас до реадлн (массив [а]);

за: = 1 до кол_мас-1 почињу

за б: = а + 1 до кол_мас почиње

ако массив [а]> массив [б] онда започните

к: = масив [а]; масив [а]: = масив [б]; масив [б]: = к;

крај;

крај;

крај;

врителн ("након сортирања");

за а: = 1 до кол_мас до врителн (массив [а]);

крај.

Пример сортирања мехурића у Ц (Ц)

Пример:

#инцлуде

#инцлуде

инт маин (инт аргц, цхар * аргв [])

{

инт массив [8] = {36, 697, 73, 82, 68, 12, 183, 88}, и, фф;

за (;;) {

фф = 0;

за (и = 7; и> 0; и -) {

иф (массив [и] <массив [и-1]) {

свап (массив [и], массив [и-1]);

фф ++;

}

}

иф (фф == 0) бреак;

}

гетцх (); // кашњење екрана

ретурн 0;

}.

Ликед:
0
Популарне поруке
Духовни развој
Храна
иуп