witam ,napisałem prosty program sortujący liczby przez selekcje . Cóż ...pytanie jest proste ,algorytm z jakiegoś powodu nie wykonuje zadania poprawnie bo albo położenie liczb się nie zmienia lub jedna wartość zostanie przestawiona . Program znalazłem na stronie i przerobiłem bardziej na składnie c++ . Szukałem ale nie znalazłem przyczyny czemu program działa tak a nie inaczej . Z góry dziękuje za pomoc :)
#include <iostream>
using namespace std;
void selectionsort(int *tab ,int n)
{
for(int i=0; i<n; i++) //petla zewnwtrzna
{
int _min = i; //minimum na poczatek wynosi taka liczbe
for(int j=i+1; j<n; j++) //jezeli znaleziono najmniejsza liczbe :
if(tab[j]<_min)_min=j;
int bufor = tab[i]; //zamiana tablic miejscami
tab[i] = tab[_min];
tab[_min] = bufor;
}
}
int main()
{
int ile;
cin>>ile;
int *tablica = new int [ile];
for(int i=0; i<ile; i++)
{
cin>>tablica[i];
}
selectionsort(tablica,ile);
for(int i=0; i<ile; i++)
{
cout<<tablica[i]<<" ";
}
return 0;
}