Bóluröðun er einfalt röðunarreiknirit að stærðargráðu n², í sínu einfaldasta formi virkar það með því að fara n · 2 sinnum yfir fylki af stærð n og færa stök sem eru stærri en næsta stak á undan „upp“ í fylkinu, en röðunin dregur einmitt nafn sitt af því að stór stök „fljóta upp“ í fylkinu eins og loftbólur.
Vegna einfaldleika reikniritsins er það oft fyrsta reikniritið sem kennt er í tölvunarfræði.
void swap(int *a, int *b)
{
const int c = *a;
*a = *b;
*b = c;
}
Einfaldasta útgáfa bóluröðunar:
void bubblesort(int num*, int size) { for (int i = 0; i < size; ++i) for (int j = 0; j < size; ++j) if (num> num[j + 1) swap(&num&num[j + 1); }
- include
void bubblesort(int num*, int size) { bool sorted;
for (int i = 0; i < size; ++i) { sorted = true;
for (int j = 0; j < size; ++j) if (num> num[j + 1) { swap(&num&num[j + 1); sorted = false; }
if (sorted) break; } }
Eftir að búið er að fara yfir fylkið einusunni er tryggt að stærsta stak þess er komið aftast í fylkið, þegar búið er að fara yfir það tvisvar er tryggt að tvö efstu stökin eru komin efst í það o.s.f., þar með er hægt að flýta reikniritinu með því að sleppa því að bera saman þau stök sem vitað er að eru þegar röðuð:
void bubblesort(int num*, int size) { int size2 = size;for (int i = 0; i < size; ++i) { for (int j = 0; j < size2; ++j) if (num> num[j + 1) swap(&num&num[j + 1);
--size2; } }
að lokum er svo hægt að sameina þessar tvær aðferðir:
- include
void bubblesort(int num*, const int size) { bool sorted; int size2 = size;
for (int i = 0; i < size; ++i) { sorted = true;
for (int j = 0; j < size2; ++j) if (num> num[j + 1) { swap(&num&num[j + 1); sorted = false; }
if (sorted) break; --size2; } }
ترتيب الفقاعات | Bubblesort | Bubble sort | Ordenamiento de burbuja | Kuplalajittelu | Tri à bulles | מיון בועות | Buborékrendezés | Bubble sort | バブルソート | Burbulo rūšiavimo algoritmas | Bubblesort | Sortowanie bąbelkowe | Bubble sort | Сортировка пузырьком | Bublinkové triedenie | Bubble sort | Сортування стандартним обміном | 冒泡排序
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Bóluröðun".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world