Dodaj do ulubionych

sortowanie majejące - jak przerobić?

22.03.06, 09:12
mam taki problem - mam do zaliczenia sortowanie
udalo mi sie zrobić rosnąco
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void selectionsort(int tablica[10], int ile_liczb)
{
int min,i,j,temp;
for (i=0;i<ile_liczb-1;i++)
{
min=i;
for (j=i+1;j<ile_liczb;j++)
if (tablica[j]<tablica[min]) min=j;
temp=tablica[min];
tablica[min]=tablica[i];
tablica[i]=temp;
}
printf("\nTablica po posortowaniu:");
for(i=0; i<ile_liczb; i++) printf("\n%i",tablica[i]);
}
void main(void)
{
int ile_liczb,i,liczba;
int tablica[10];

printf("Ile liczb chesz posortowac (do 10) ? ");
scanf("%i",&ile_liczb);
for(i=0; i<ile_liczb; i++)
{
printf("Wprowadz liczbe #%i: ",i+1);
scanf("%i",&liczba);
tablica[i]=liczba;
}

printf("Tablica przed posortowaniem:");
for(i=0; i<ile_liczb; i++) printf("\n%i",tablica[i]);
selectionsort(tablica,ile_liczb);
printf("\nDowolny klawisz...");
getch();
}
a chciałbym to samo - tylko majejąco - ale jak do tej pory nie wychodzi mi,
czy ktoś mógłby mi pomoóc??
Obserwuj wątek
    • ktosktomafajnegomisiaczka Re: sortowanie majejące - jak przerobić? 22.03.06, 22:29
      jezeli program dziala poprawnie zgodnie z algorytmem sortowania poprzez
      wybieranie (wnioskuje po funkcji selectionsort) i sortuje rosnaco, to wystarczy
      ze zmienisz

      > if (tablica[j]<tablica[min]) min=j;

      na:

      > if (tablica[j]>tablica[min]) min=j;

      i powinno wystarczyc, poniewaz teraz zamiast najmniejszych bedzie wybieral
      najwieksze i robil z nimi to samo, czyli wstawial kolejno od pierwszego miejsca
      w gore..

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka