`Witam,
staram się posortować tablicę N elementowa według wartości, lecz na wyjściu chcę mieć tablicą która zawiera indeksy tylko indeksy posortowanej tablicy np:
R [32 41 12 54 31]
- tablica do posortowania
X [3 5 1 2 4]
- wynikowa tablica zawierająca indeksy tablicy R
Ogólnie to ładnie się sortuje ale pomija 3 wartości nie wiedzieć czemu, może ktoś z Was się dopatrzy błedu, bądź innego rozwiązania.
for(int i=0;i<100;i++)
{
X[i]=0;
}
int bufR,sprawdz=0;
for(int j=0;j<N;j++) //szukanie najmniejszego R i wpisywanie jego id do tablicy X
{
bufR=0; //ustawianie na pierwsze miejsce tablicy R
for(int i=0;i<N;i++) //szukanie najmniejszego R
{
if(R[i]<R[bufR]) //sprawdz czy kolejny jest mniejszy od dotychczas najmniejszego
{
for(int k=0;k<N;k++) //sprawdzanie czy w tablicy X był już użyty ten R
{
if(X[k]==i+1)
{
sprawdz=1; //jesli byl ustawia zmienna pomocnicza na 1
}
}
if(sprawdz!=1) //jesli nie byl to ten element jest najmniejszy
{
bufR=i;
}
}
sprawdz=0; //zeruje zmnienna sprawdzajaca
}
X[j]=bufR+1; //przypisuje w kolejne miejsca w tablicy id zmiennej R
}
for(int i=0;i<N;i++)
{
cout<<X[i]<<endl;
}