selection sort
Ostatnio zmodyfikowano 2015-12-24 12:29
locf Temat założony przez niniejszego użytkownika |
selection sort » 2015-12-24 11:05:41 Znów prośba o pomoc. Mam taki program odnoszący się do zagadnienia sortowania, które jest nowe dla mnie. W niektórych liniach kodu zamieściłem komentarze jak ja to rozumiem. Proszę abyście sprawdzili, czy to co napisałem w tych komentarzach ma sens, czy może należy to rozumieć inaczej. W pewnych miejscach napisałem w komentarzu, że czegoś nie rozumiem, więc moja prośba o komentarz z Waszej strony o co w tej linii kodu chodzi. #include <iostream> #include <cstdlib>
using namespace std;
const int n = 5;
int main( int argc, char * argv[] ) { double a[ n ]; int i, i_min, j; double temp; cout << "Program wektor_3, czyli proste sortowanie\n\n"; cout << "Wczytywanie danych:\n"; for( i = 0; i < n; i++ ) { cout << " Podaj " << i << " element ciągu: "; cin >> a[ i ]; } for( i = 0; i < n - 1; i++ ) { i_min = i; for( j = i + 1; j < n; j++ ) if( a[ j ] < a[ i_min ] ) i_min = j; temp = a[ i ]; a[ i ] = a[ i_min ]; a[ i_min ] = temp; }; for( i = 0; i < n; i++ ) cout << "a[" << i << "] = " << a[ i ] << endl; return 0; }
|
|
costam |
tytul » 2015-12-24 12:29:06 Rozbij to sobie na KILKA małych funkcji a mainie tylko je wywołuj wtedy jest dużo prościej zrozumieć jak coś działa. int ZnajdzNajmniejszy( int * tab, int od, int doo ) { int i_min = tab[ od ]; for( int i = od + 1; i < doo; i++ ) { if( tab[ i ] < tab[ i_min ] ) i_min = i; } return i_min; } void swap( int & a, int & b ) { int tmp( a ); a = b; b = tmp; }
for( i = 0; i < n - 1; i++ ) { int id = ZnajdzNajmniejszy( a, i, n ); swap( a[ i ], a[ id ]; }
nie ma szans moja siostra by zrozumiała :D |
|
« 1 » |