Forum grupy T2 I Roku EiT

  • Nie jesteś zalogowany.
  • Polecamy: Komputery

#1 2007-12-06 21:48:18

Mateusz Buczkowski

UÂżytkownik

1965860
Zarejestrowany: 2007-10-04
Posty: 23
Punktów :   

Sortowanie [05.XII.2007]

Chodzi, ale nie wiem czemu tylko dla tablicy <10 Jak ktoś znajdzie błąd niech się dzieli :]


#include <iostream>
using namespace std;

void sortowanie(int tab1[],int tab2[],int rozmiar)
{
     for(int i=0;i<rozmiar;i++)
     tab2[i]=-1;
     
     int min;
     bool bylo=false;
     int max=tab1[0];

     for(int i=0;i<rozmiar;i++)
     if (tab1[i]>max) max=tab1[i];
     
     for(int j=0;j<rozmiar;j++)
     {
     min=max;
     for(int i=0;i<rozmiar;i++)
         {
             if (tab1[i]<=min)
                 {
                    bylo=false;
                    for(int k=0;k<j;k++)
                      if (i==tab2[k]) bylo=true;
                    if (!bylo)
                      {
                         tab2[j]=i;                         
                         min=tab1[i];
                      }
                 }
         }
   
     }
     
     
     for(int i=0;i<rozmiar;i++)
     tab2[i]=tab1[tab2[i]];
     
     for(int i=0;i<rozmiar;i++)
     cout<<tab2[i]<<endl;
}

int main()
{
    int rozmiar, tablica1[rozmiar], tablica2[rozmiar];
    cout<<"Podaj rozmiar tablicy: ";
    cin>>rozmiar;
    cout<<endl;
   
    for(int i=0;i<rozmiar;i++)
    {
            cout<<"Podaj wartosc: ";
            cin>>tablica1[i];
    }
    cout<<endl;
   
    sortowanie(tablica1,tablica2,rozmiar);
    system("pause");
}

Offline

 

#2 2007-12-08 17:16:33

dziamek

UÂżytkownik

6596141
Zarejestrowany: 2007-10-10
Posty: 10
Punktów :   

Re: Sortowanie [05.XII.2007]

Na moje (ale ja tam sie nie znam) musisz zadeklarować na sztywno rozmiar przy deklaracji(rozmiar musi być podobno z tego co kiedyś Tyszer mówił znany w chwili kompilacji) i wszystko powinno dobrze działać, albo co nie wiem jak wogóle zrobić zastosować "dynamiczną alokacje tablicy"

Ostatnio edytowany przez dziamek (2007-12-08 17:18:13)


Przemek

Offline

 

#3 2007-12-09 14:25:51

Mateusz_Frąckowiak

UÂżytkownik

Zarejestrowany: 2007-10-04
Posty: 52
Punktów :   

Re: Sortowanie [05.XII.2007]

mi też sie tak wydaje i jeszcze taka mała uwaga techniczna

Kod:

for(int i=0;i<rozmiar;i++)
     tab2[i]=-1;
     
     int min;
     bool bylo=false;
     int max=tab1[0];

lepiej jest zadeklarować zmienne poza pętlą;) bo dla każdego przejścia pętli w tym miejscu deklarujesz 3 zmnienne - czyli dla rozmiar=100 masz dodatkowo 300 operacji - mało opłacalne


>> http://img80.imageshack.us/img80/5980/palylm4.jpg  <<

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.plklej do luster