Sortiranje mehurom — разлика између измена
Садржај обрисан Садржај додат
Нема описа измене |
м Разне исправке; козметичке измене |
||
Ред 1:
Баблсорт је [[
== Анализа алгоритма ==
Баблсорт има нијгору и просечну комплексност ''[[big o notation|О]]''(''n''<sup>2</sup>) где је n број ставки у низу које треба да се сортирају.Чак и алгоритми који имају комплексност ''[[big o notation|О]]''(''n''<sup>2</sup>)као сто је [[Sortiranje umetanjem|сортирање уметањем]] има бољу перформансу од баблсорта.Баблсорт је једино добар кад n(број ставки у низу) није велики.Предност овог алгоритма у односу на све остале алгоритме са бољом перформансом је што без проблема може да одреди да ли је низ сортиран и тада је сложеност ''[[big o notation|О]]''(''n'').И ово је најбоља комплексност алгоритма.
== Пример ==
Корисник уноси низ бројева 10 4 55 21 6 морамо да сортирамо овај низ бројева у растућем поретку користећи баблсорт.
(
( 4
( 4 10 '''55''' '''21''' 6 ) <math>\to</math> ( 4 10 '''21''' '''55''' 6 ), Овде вршимо замену јер је 55 > 21
( 4 10 21 '''55''' '''6''' ) <math>\to</math> ( 4 10 21 '''6''' '''55''' ), Овде вршимо замену јер је 55 > 6
Друга итерација:
( '''4''' '''10''' 21 6 55 ) <math>\to</math> ( '''4''' '''10''' 55 21 6 ), Овде не вршимо замену јер је 4 < 10
( 4 '''10''' '''21''' 6 55 ) <math>\to</math> ( 4 '''10''' '''21''' 6 55 ), Овде не вршимо замену јер је 10 < 21
( 4 10 '''21''' '''6''' 55 ) <math>\to</math> ( 4 10 '''6''' '''21''' 55 ), Овде вршимо замену јер је 21 > 6
( 4 10 6 '''21''' '''55''' ) <math>\to</math> ( 4 10 21 '''6''' '''55''' ), Овде не вршимо замену јер је 21 < 55
Друга итерација:
( '''4''' '''10''' 6 21 55 ) <math>\to</math> ( '''4''' '''10''' 6 21 55 ), Овде не вршимо замену јер је 4 < 10
( 4 '''10''' '''6''' 21 55 ) <math>\to</math> ( 4 '''6''' '''10''' 21 55 ), Овде вршимо замену јер је 10 > 6
( 4 6 '''10''' '''21''' 55 ) <math>\to</math> ( 4 6 '''10''' '''21''' 55 ), Овде не вршимо замену јер је 10 < 21
( 4 6 10 '''21''' '''55''' ) <math>\to</math> ( 4 6 10 '''21''' '''55''' ), Овде не вршимо замену јер је 21 < 55
== Имплементација алгоритма ==
Ово је имплементација алгоритма у програмском језику С.
include<stdio.h>
include<conio.h>
void main() {
int arr[30], num, i;
printf("\nУнесите број елемената низа :");
scanf("%d", &num);
printf("\nУнесите елементе низа :");
for (i = 0; i < num; i++)
scanf("%d", &arr[i]);
bubble_sort(arr, num);
getch();
}
Ово је функција у којој смо имплеметирали бублсорт.
void bubble_sort(int iarr[], int num) {
int i, j, k, temp;
printf("\nНе сортирани низ:");
for (k = 0; k < num; k++) {
printf("%5d", iarr[k]);
}
for (i = 1; i < num; i++) {
for (j = 0; j < num - 1; j++) {
if (iarr[j] > iarr[j + 1]) {
temp = iarr[j];
iarr[j] = iarr[j + 1];
iarr[j + 1] = temp;
}
}
printf("\nПосле %d итерације : ", i);
for (k = 0; k < num; k++) {
printf("%5d", iarr[k]);
}
}
}
Резултат програма
Унесите број елемената низа :5
Унесите елементе :10 4 55 21 6
Несортиран низ : 10 4 55 21 6
После
После
После 3 итерације : 4 6 10 21 55
После 4 итерације : 4 6 10 21 55
== Слични алгоритми ==
Слични овом алгоритму је алгоритам [[Koktel sortiranje|коктел сортирање]] он ради на истом принципу као и баблсорт само сто у једној итерацији пролази кроз низ прво са леве па онда са десне стране.
|