Seminarska naloga C

dewil Član
uredil/-a 21. April, 2008 v Programiranje
Živjo!

V šoli smo dobili seminarsko nalogo, katera mi dela preglavice, in sicer:

APJ seminarksa naloga iz razvrscevanj podatkov

1.) Casovna primerjava med bubble, insertion in selection sort
-izbira nakljucnih stevil za: 5000, 10000, 15000 stevil

Koncna tabela:
______________________________________________________
bubble sort | insertion sort | selection sort | n
? ms ? ms ? ms 5000
? ms ? ms ? ms 10000
? ms ? ms ? ms 15000


Narisi graf (v tekstovnem nacinu obvezno, za + v grafiki)


2.) Casovna primerjava med zaporednim iskanjem in med sortiranjem + binarno iskanje

Tabela:
_________________________________________________________
Zaporedno iskanje | sortiranje + dvojisko iskanje | n
? ms ? ms 1x
? ms ? ms 10x
? ms ? ms 100x


Narisi graf


Zanima me, če bi si kdo lahko vzel pol ure in to napisal v C-ju.
Bil bi zelo hvaležen.

Hvala, LP

Komentarji

  • Cube Član Ubuntu.si
    uredil/-a 22. April, 2008
    tuki so sortiranja se mi zdi da bi mogla delat prav.
    #include <stdio.h>

    void mehurcki(int a[],int n){
    int i,j,tmp;
    for(i=0;i<n-1;i++){
    for(j=0;j<n-1-i;j++)
    if(a[j+1]<a[j]){
    tmp=a[j];
    a[j]=a[j+1];
    a[j+1]=tmp;
    }
    }
    }

    void vstavljanje(int a[],int n){
    int i;
    for(i=0;i<n;i++){
    int j,v=a[i];

    for(j=i-1;j>=0;j--){
    if(a[j]<=v)break;
    a[j+1]=a[j];
    }
    a[j+1]=v;
    }
    }

    void izbira(int a[], int n){
    int i, j, min, tmp;

    for (i = 0; i < n-1; i++){
    min= i;
    for (j = i+1; j < n; j++){
    if (a[j] < a[min])
    min= j;
    }
    tmp= a[i];
    a[i]= a[min];
    a[min]= tmp;
    }
    }


    int main(){
    int i,n;
    printf(\"vnesi n:\n\");
    scanf(\"%d\",&n);
    int a[n];
    int b[n];
    int c[n];

    for(i=0;i<n;i++)
    a[i]=random();
    for(i=0;i<n;i++)
    b[i]=random();
    for(i=0;i<n;i++)
    c[i]=random();
    /*
    printf(\"a[]: \");
    for(i=0;i<sizeof(a)/sizeof(*a);i++)
    printf(\"%d \",a[i]);
    printf(\"\n\");

    printf(\"b[]: \");
    for(i=0;i<sizeof(b)/sizeof(*b);i++)
    printf(\"%d \",b[i]);
    printf(\"\n\");

    printf(\"c[]: \");
    for(i=0;i<sizeof(c)/sizeof(*c);i++)
    printf(\"%d \",c[i]);
    printf(\"\n\");
    */

    //sortiranje
    //mehurcno
    // printf(\"Mehurcno a[]; \n\");
    mehurcki(a,sizeof(a)/sizeof(*a));
    /*
    for(i=0;i<sizeof(a)/sizeof(*a);i++)
    printf(\"%d \",a[i]);
    printf(\"\n\");
    */
    //z vstavljanjem
    // printf(\"Vstavljanje b[]; \n\");
    vstavljanje(b,sizeof(b)/sizeof(*b));
    /*
    for(i=0;i<sizeof(b)/sizeof(*b);i++)
    printf(\"%d \",b[i]);
    printf(\"\n\");
    */
    //izbiro
    // printf(\"Izbira c[]; \n\");
    izbira(c,sizeof(c)/sizeof(*c));
    /*
    for(i=0;i<sizeof(b)/sizeof(*c);i++)
    printf(\"%d \",c[i]);
    */ printf(\"\n\");
    }

    deluje do vkljucno stevil 99999.
    kk ze gre dvojisko iskanje? f=4 12333333|45566789->4556|6789->45|56->4
    je to to?
    evo ce je to to.
    je tuki koda.

     #include<stdio.h>

    void mehurcki(int a[],int n){
    int i,j,tmp;
    for(i=0;i<n-1;i++){
    for(j=0;j<n-1-i;j++)
    if(a[j+1]<a[j]){
    tmp=a[j];
    a[j]=a[j+1];
    a[j+1]=tmp;
    }
    }
    }

    void binary(int a[], int n, int key){
    int low, high, mid, t=0;
    low = 0; high = n-1;

    while(low <= high){
    mid = (low+high)/2;
    if(key < a[mid])
    high = mid-1;
    else
    if(key > a[mid])
    low = mid+1;
    else {
    printf(\"Najdeno %d na indexu %d\n\",key, mid+1);
    t=-1;
    break;
    }
    }
    if(t!=-1)
    printf(\"Ni bilo najdeno!\n\");
    }

    void po_vrsti(int a[],int n,int key){
    int i;
    for(i=0;i<n;i++)
    if(key==a[i])
    printf(\"Najdeno %d na indexu %d\n\",key,i+1);
    }

    int main(void){
    int key,i;
    int a[6]={5,4,3,6,8,3};
    int b[6]={5,4,3,6,8,3};
    mehurcki(a,sizeof(a)/sizeof(*a));
    printf(\"sortirano:\n\");
    for(i=0;i<6;i++)
    printf(\"%d \",a[i]);
    printf(\"\n\");
    printf(\"Vnesi iskano stevilko\n\");
    scanf(\"%d\",&key);
    binary(a,sizeof(a)/sizeof(*a),key);
    printf(\"\nPo vrsti\n\");
    po_vrsti(b,sizeof(b)/sizeof(*b),key);
    }

    pa se zaporedno iskanje je dodano..

    offtopic: za katero solo je to?

    lp,cube
  • dewil Član
    uredil/-a 23. April, 2008
    Živjo!

    Je za srednjo šolo za elektrotehniko in računalništvo Ljubljana, 2 letnik.

    Drgač pa lepa hvala za tole, pa če mi kj še nebo jasn, upam da lohk še prašam :)

    Aja pa zdj, tole sem pogledu pa je ql, edin to sm pozabu oment, da mora bit vse u enmu programu. Pa sj to ni problem.
    Zanima me samo, če kdo zna nardil še grafično tabelo in graf.
  • Cube Član Ubuntu.si
    uredil/-a 23. April, 2008
    APJ torej? al se je ze kj spremenilo ime? :D
    graficno tabelo in graf v cem?

    lp,cube
  • Točno tako, APJ :)

    Zdj kar se tega programa tiče...
    Za sortiranje rabm jz sam razliko v milisekundah med sorti. In to morm izpisat v tabeli, kakršna je v navodilih.
    Ampak to je tekstovn način. Grafičen je težji, ampak pripomore k oceni :D. Potem pa še graf, na katerem razberemo razliko
    sortov. K da bi delal tabelo v excel in nato izvozil graf, razlika pri tej nalogi je le ta, da je treba vse to narediti v C-ju :)

    Isto tudi za drugo nalogo(tabla, graf). In vse skupaj naj bi bilo en program.

    LP
  • urh Član Ubuntu.si
    dewil fantje ti delajo medvedjo uslugo. ki lahko se lahko hitro vrne kot bumerang, sam bo 2x bol zabolelo :P pomoje bi blo kr prav ce bi se sam lotil pa tukaj za kaksn nasvet povprasal. No to je moje mnenje, zato jaz lahko le svetujem, pisal ti pa kode nebi.
  • dewil Član
    uredil/-a 25. April, 2008
    Sej tega se zavedam. Sicer sem že veliko naredil sam, ampak grafični način izrisa tabele in grafa mi pa res ne gre, saj se ga v šoli nismo učili.
    (zato tudi pripomore k oceni). Se trudim, kolikor se lahko, ampak mislm, da grafike nebom mogel narediti. Zdj, če kakšen kle gor ve kako pa kaj
    bi prosu magar sam za kakšen namig.

    Hvala

    Lp, dewil
  • Cube Član Ubuntu.si
    za graficni nacin se bi pa na napsya obrnu k je najbl v tem jst sm bl mahnjen na console powah :D

    urh drugace mas pa prav.. ampak tko al tako ce se ni bo kmal to ugotovu :D
    sam useen rad pomagam k tud men je dost folka pomagal, zdj pa ce nardis copy/paste je tvoja stvar kr razen ocene(pa se ta je uprasljiva) ne odneses nc od tega.

    lp,cube
  • napsy Član Ubuntu.si
    Za ustvarjanje grafov si lahko pogledaš program gnuplot
Za komentiranje se prijavite ali pa se vpišite.