Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Insertion sort - srovnání a výměny

Aktivity
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: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
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.