Avatar
Peta
Člen
Avatar
Peta:14.12.2015 20:56

Ahoj,
potřebuji pomoct s tříděním prvků a počítáním srovnání a výměn. Nevíte někdo, jak mám udělat to počítání a ještě jak udělat třídění postupně pro 10, 20, 50, 100, 200, 500, 1000, 2000, 5000 náhodně vygenerovaných čísel? Jsem úplný začátečník a nemůžu na to přijít.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{

        int pole[10];
        int i, j, n, temp;
        n = 10;
        for (i = 0; i < n; i++)
                pole[i] = rand();

        /*Sort*/
        for (i = 1; i < n; i++) {
                j = i;
                while ((j > 0) && (pole[j - 1] > pole[j])) {
                        temp = pole[j - 1];
                        pole[j - 1] = pole[j];
                        pole[j] = temp;
                        j--;
                }
        }
        /* tisk */
        printf("Sorted Array\n");
        for (i = 0; i < n; i++)
                printf("%d \n", pole[i]);
        return 0;
}
 
Odpovědět 14.12.2015 20:56
Avatar
Libor Šimo (libcosenior):15.12.2015 11:33

Vytvorenie polí z náhodných čísiel, ich zoradenie a výpis.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void vytvor_zotried_vypis_pole(int *pole, int velkost_pola)
{
    int i, j, temp;

    for (i = 0; i < velkost_pola; i++)
        pole[i] = rand() % velkost_pola + 1;
    for (i = 1; i < velkost_pola; i++) {
        j = i;
        while ((j > 0) && (pole[j - 1] > pole[j])) {
            temp = pole[j - 1];
            pole[j - 1] = pole[j];
            pole[j] = temp;
            j--;
        }
    }
    printf("Zoradene pole o %d nahodnych cislach v rozsahu 1 az %d:\n", velkost_pola, velkost_pola);
    for (i = 0; i < velkost_pola; i++)
        printf("%d, ", pole[i]);
    printf("\n\n");
}

int main()
{
    int pole1[10], pole2[20], pole3[50], pole4[100]; //, pole5[200], pole6[500], pole7[1000], pole8[2000], pole9[5000];

    /** inicializacia generatora nahodnych cisiel */
    srand(time(0)); // toto ti chýbalo
    vytvor_zotried_vypis_pole(pole1, 10);
    vytvor_zotried_vypis_pole(pole2, 20);
    vytvor_zotried_vypis_pole(pole3, 50);
    vytvor_zotried_vypis_pole(pole4, 100);
    /*vytvor_zotried_vypis_pole(pole5, 200);
    vytvor_zotried_vypis_pole(pole6, 500);
    vytvor_zotried_vypis_pole(pole7, 1000);
    vytvor_zotried_vypis_pole(pole8, 2000);
    vytvor_zotried_vypis_pole(pole9, 5000);*/

    return 0;
}
Nahoru Odpovědět 15.12.2015 11:33
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Peta
Matyáš Černohous (Matesak):16.12.2015 10:52

Zápočtové na UPOLU, co ? :D

 
Nahoru Odpovědět 16.12.2015 10:52
Avatar
Peta
Člen
Avatar
Odpovídá na Matyáš Černohous (Matesak)
Peta:16.12.2015 11:36

Jo jo, když někdo neumí dymanické pole, tak je to potom těžké.

 
Nahoru Odpovědět 16.12.2015 11:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.