| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 25.09.11 Prihlásený: 27.05.14 Príspevky: 16 Témy: 10 | Napísal juro41: 07.10.2011 8:43 | |
|
ako zastavim bubble sort aby sa už napr 10 krat nebublal ked už je to správne usporiadané v 9
Citácia: #include <stdio.h> #include <stdlib.h> #include <time.h> #define ROZMER 10
void vypis_pole(short int cykl, unsigned int pole[]) { unsigned short int i; printf("Prvky pole (%2i):\n", cykl);
/* schvalne, co by se stalo, kdyby byl ROZMER lichy ? */ for (i = 0; i < ROZMER / 2; i++) printf("%2u: %u\t\t%2u: %u\n", i + 1, pole[i], i + ROZMER / 2 + 1, pole[i + ROZMER / 2]); /* spravna odpoved zni .... chvilka napeti ... * posledni prvek z pole by se nevypsal. */ }
int main(void) { unsigned int cykl, bublani; unsigned int pole[ROZMER], pom;
/* nejdrive inicializujeme pole nahodnymi hodnotami a vypiseme jej */ srand((unsigned int) time(NULL));
for (cykl = 0; cykl < ROZMER; cykl++) pole[cykl] = (rand() % 100) + 1;
printf("Inicializace: \n"); vypis_pole(-1, pole);
/* ted pole setridime algoritmem bubble sort */
for (cykl = 1; cykl < ROZMER; cykl++) { for (bublani = ROZMER - 1; bublani >= cykl; bublani--) { printf("."); if (pole[bublani - 1] > pole[bublani]) { /* mensi cislo probubla o jeden prvek smerem k zacatku */ pom = pole[bublani - 1]; pole[bublani - 1] = pole[bublani]; pole[bublani] = pom; } } /* vypiseme mezivysledek, kde "cykl" nejmensich cisel * uz mame zarucene na zacatku pole */ printf("\n"); vypis_pole(cykl, pole); }
return 0; }
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 07.10.2011 11:24 | |
|
for (cykl = 1; cykl < ROZMER-1; cykl++)
ako hovoríš..cykl najmenších čísel už máš zaručene na začiatku poľa.. to znamená, že pokiaľ v 10 prvkovom poli máš 9 najmenších čísel zaručene na začiatku poľa, to 10te bude najväčšie
ale pri veľkých poliach ti to beh programu nezrýchli takmer vôbec preto odporúčam popozerať sa po iných typoch triedenia..
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|