Jak v C naprogramovat bubblesort?
Jak v C naprogramovat bubblesort?
Ahoj, potřebovala bych pomoc, mám za úkol vytvořit program v C, který seřadí prvky pole podle vzestupně podle velikosti metodou "bubble sort". Nevíte někdo jak na to .??
Re: C
Bubblesort funguje tak, že porovnáváním sousedních dvojic od začátku pole postupně vybubláš nejvyšší číslo na nejvyšší pozici - na konec pole.
Potom ho znovu procházíš zdola a další nejvyšší hodnotu vybubláš na druhou pozici.
Pak začneš zase zdola, a další nejvyšší nalezenou hodnotu vybubláš na třetí pozici...
A tak dál, až ti na nejnižší pozici pole zůstane nejnižší číslo:
Pokud potřebuješ opačné pořadí, od největšího po nejmenší, stačí otočit znaménko > v tom if() na <.
Psal jsem to z hlavy, tak to nejdřív otestuj, jestli tam není nějaká drobná chybička
Potom ho znovu procházíš zdola a další nejvyšší hodnotu vybubláš na druhou pozici.
Pak začneš zase zdola, a další nejvyšší nalezenou hodnotu vybubláš na třetí pozici...
A tak dál, až ti na nejnižší pozici pole zůstane nejnižší číslo:
Kód: Vybrat vše
int i,j,w,pole[POCET_PRVKU];
...
for (i=POCET_PRVKU-1;i>0;--i)
for (j=0;j<i;++i)
if (pole[j]>pole[j+1])
{
temp=pole[j];
pole[j]=pole[j+1];
pole[j+1]=temp;
}
Pokud potřebuješ opačné pořadí, od největšího po nejmenší, stačí otočit znaménko > v tom if() na <.
Psal jsem to z hlavy, tak to nejdřív otestuj, jestli tam není nějaká drobná chybička

"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: C
Podobnou smyčkou, jakou do pole načítáš hodnoty:
Pro inspiraci si můžeš přečíst můj avatar
Kód: Vybrat vše
for (i=0;i<POCET_PRVKU;++i)
printf("%d\n",pole[i]);
Pro inspiraci si můžeš přečíst můj avatar

"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: C
Jo, to byl ten výpis. Při načítání jen místo printf() dáš scanf(). Pokud tedy předem znáš počet prvků, jinak ten program budeš muset trochu upravit...
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti