Ordnung der Laufzeit....



  • Hallo!Ich habe einen Allgo.(siehe unten).Ich muß dazu die Ordnung der Laufzeit berechnen.
    Ich habe folgendes raus bekommen,das der Allgo.eine Quadratische Ordnung hat.
    also O(n2)O(n^2).
    Bekommt ihr das selbe raus?

    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
    int m1[100][100];
    int s,z,m;
    int t1=1;
    int k=0;
    int ze=2;
    int sp=2;
    int merker=0;
    int m2,m3,m4;
    int i=1; 
    int h=0;
    int j=1;
    int n1=2;
    int l1=1;
    int l2=2;
    int z1=1;
    int g=0;
    int g3=0;
    int g5=0;
    int n2=0;
    
    do {
    printf("------------Eingabe der Matrixwerte-----------------\n\n");
    printf("Geben Sie die Spaltenlaenge der Matrix ein (max.5):");
    scanf("%d",&s);
    printf("Geben Sie die Zeilenlaenge der Matrix ein (max.5) :");
    scanf("%d",&z);
    }
    while(s>=6||z>=6);
    printf("\n----------------------------------------------------\n");
    printf("Die Spaltenlaenge beträgt:%d\n",s);
    printf("Die Zeilenlaenge betraegt:%d\n",z);
    printf("----------------------------------------------------\n");
    
    int t2=s*z;
    //-----------Äußere----Schleife--------------------------------------------------
    for(j=1;j<z+1;j++)
    {
    //-----------Innere----Schleife-------------------------------------------------
    for(i=1;i<s+1;i++)
    {
    printf("Eingabe [%d von %d] -- Zeile %d Spalte %d:",t1,t2,j,i);
    scanf("%d",&m1[i][j]);
    if((m1[i][j]==0)||(m1[i][j]==1)){
    t1+=1;
    }
    else {
    printf("---------------------------------------------------------------------\n");
    printf("Bitte Geben Sie nur eine 1 oder eine 0 als Zahl ein!\n");i=i-1;j=j;t1=t1;t2=t2;
    printf("---------------------------------------------------------------------\n");
    }}}
    printf("Die Darstellung der Matrix:\n");
    for(j=1;j<z+1;j++)
    {
    printf("\n");
    for(i=1;i<s+1;i++)
    {
    printf("%d ",m1[i][j]);
    }}
    printf("\n\n");
    //--------------Diagonale mit einsen in Teilmatrizen suchen------------------------
    //-----------Äußere schleife---------------------------------------
    for(z1=1;z1<s;z1=z1+2,l1=l1+2,l2=l2+2)
    {
    if(m1[l1][l1]&&m1[l2][l2]==1){h=h+1;}
    if((h>=1)&&(s>=3)&&(z>=3)&&(m1[3][3]==1)){g3=1;}
    if((h==2)&&(s==5)&&(z==5)&&(m1[5][5]==1)){g5=1;}
    if(h==2){g=1;}
    }
    for(i=1;i<s+1;i=i+2,ze=i+1)//spalte
    {
    //-------Innere schleife---------------------------------------
    for(j=1;j<z+1;j=j+2,sp=j+1)//zeile
    {
    if(j==1){sp=2;}
    if(((m1[i][j])==1)&&((m1[ze][sp]))==1)k=k+1;
    }}
    printf("---------------------Teilmatrix-Belegung---------------------------\n\n");
    for(i=1;i<s;i++,n1++)
    {
    n2=(n1*n1);
    if((z%n1||s%n1)==0)
    {
    n2=(n1*n1);
    if(((s*z)%n2)==0)
    {
    m=(s*z)/n2;
    merker=1;
    printf("[%d] [%dx%d] Teilmatrize(n), sind moeglich.\n",m,n1,n1);
    }}
    else
    {
    if(((s%n1)==0)&&((z%n1)!=0)&&((merker)==0))
    {
    m2=((z)-(z%n1))*(s)/n2;
    printf("[%d] [%dx%d] Teilmatrize(n), sind moeglich.\n",m2,n1,n1);
    }}
    if(((z%n1)==0)&&((s%n1)!=0)&&((merker)==0))
    {
    m3=((s)-(s%n1))*(z)/n2;
    
    printf("[%d] [%dx%d] Teilmatrize(n), sind moeglich.\n",m3,n1,n1);
    }
    else
    {
    if(((z%n1)!=0)&&((s%n1)!=0)&&((merker)==0))
    {
    m4=((s)-(s%n1))*((z)-(z%n1))/n2;
    
    printf("[%d] [%dx%d] Teilmatrize(n), sind moeglich.\n",m4,n1,n1);
    }}}
    printf("\n");
    printf("---------------------Matrix Diagonal Belegung----------------------\n\n");
    printf("[%d] [2x2] Teilmatrize(n) nur mit Einsen in der Hauptdiagonale.\n",k);
    printf("[%d] [3x3] Teilmatrize(n) nur mit Einsen in der Hauptdiagonale.\n",g3);
    printf("[%d] [4x4] Teilmatrize(n) nur mit Einsen in der Hauptdiagonale.\n",g);
    printf("[%d] [5x5] Teilmatrize(n) nur mit Einsen in der Hauptdiagonale.\n",g5);
    printf("-------------------------------------------------------------------\n");
    getch();return 0;
    }
    

Anmelden zum Antworten