[C][Algorytmy] Sortowanie bąbelkowe. Optymalizacja

Lucjan
Użytkownik
Użytkownik
Posty: 38
Rejestracja: 8 paź 2014, o 14:14
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 23 razy
Pomógł: 1 raz

[C][Algorytmy] Sortowanie bąbelkowe. Optymalizacja

Post autor: Lucjan »

Witam,
ma ktoś pomysł jak przyspieszyć działanie programu? Zadaniem jest posortowanie kilku zestawów liczb. Należy użyc sortowania bąbelkowego.

Kod: Zaznacz cały

#include <stdio.h>

int main ()

{
int tab[100001];
int z,o,k,i,j;
int zam1,zam2;
int flaga=0;

scanf ("%d",&z); //wczytuję liczbe zestawów danych
for (o=1;o<=z;o++)
{
scanf ("%d",&k); //wczytuję ile liczb do posortowania

for (i=1;i<=k;i++)
      scanf("%d",&tab[i]);

for (i=1;i<=k-1;i++)
    {  
	for (j=1;j<=k-i;j++)
              {
               if (tab[j] >= tab[j+1])
                      {
                       zam1=tab[j];
                       zam2=tab[j+1];
                       tab[j]=zam2;
                       tab[j+1]=zam1;
                       flaga=1;
                      }
			  }
	if (flaga==0) break;
	}

for (i=1;i<=k;i++)
      printf("%d ",tab[i]);
      
printf("
");
}
return 0;
}
Ostatnio zmieniony 31 paź 2014, o 20:34 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C][Algorytmy] Sortowanie bąbelkowe. Optymalizacja

Post autor: Zordon »

Przyspieszyć, tzn. sprawić, żeby się nie zapętlał? Po prostu ustawiaj flagę na 0 w odpowiednim miejscu.
ODPOWIEDZ