Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie ze wskaznikami

Ostatnio zmodyfikowano 2015-03-19 21:02
Autor Wiadomość
Dizip
Temat założony przez niniejszego użytkownika
Sortowanie ze wskaznikami
» 2015-03-19 20:40:14
Zrobiłem krótki programik, ktory alokuje w pamieci n wyrazow typu int po czym trzeba je wpisac a programik je posortuje - swietne i banalne.
Teraz moje kluczowe pytanie - Co ja sortuje? Czy ja sortuje wskazniki do pamieci? Czy ja kopiuje wielokrotnie dane? Czy taki sposob jest 'optymalny'? Chodzi mi o jak najmniejsze zuzycie pamieci. Jestem początkującym we wskaznikach i zalezy mi bym sortował tylko adresy bez kopiowania ich wartosci.
Oto kod:

#include <stdio.h>
#include <stdlib.h>

void zamien(int *a, int *b)
{
     int temp=*a;*a=*b;*b=temp;
}

void sortuj(int * l,int rozmiar)
{
    int i,j;
    for(i=rozmiar-1;i>0;i--)
        for(j=0;j<i;j++)
            if(l[j]>l[j+1])
                zamien(&l[j],&l[j+1]);
}

int main()
{
    int n,i=0;
    scanf("%d",&n);
    int * tab = (int *) malloc(n*sizeof(int));

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

    sortuj(tab,n);

    for(i=0;i<n;i++)
    {
        printf("%2d ",tab[i]);
    }
    free(tab);
    return 0;
}
P-128782
pekfos
» 2015-03-19 20:57:37
Chodzi mi o jak najmniejsze zuzycie pamieci. [..] zalezy mi bym sortował tylko adresy bez kopiowania ich wartosci.
To się nie dodaje. Sortowanie adresów to w tym przypadku dwa razy większe zużycie pamięci.
P-128783
Dizip
Temat założony przez niniejszego użytkownika
» 2015-03-19 21:00:56
Czyli tak jak zrobiłem jest najlepszą możliwą opcją? ( pomijam już sam algorytm sortowania )
P-128784
pekfos
» 2015-03-19 21:02:52
Możliwe.
P-128785
« 1 »
  Strona 1 z 1