Sortowanie bąbelkowe liczb ujemnych
Ostatnio zmodyfikowano 2012-09-14 20:43
tirou |
» 2012-09-10 22:04:27 void sort( int d[], int size ) { bool p = true; while( p ) { p = false; for( int i = 0; i < 10; i++ ) { if( d[ i ] > d[ i + 1 ] ) { swap( d[ i ], d[ i + 1 ] ); p = true; } size--; } } }
int min_max( int d[], int size, int & maximum ) { int min = d[ 0 ]; for( int i = 1; i < size; i++ ) { if( d[ i ] > maximum ) maximum = d[ i ]; if( d[ i ] < min ) min = d[ i ]; } return min; }
void swap( int & a, int & b ) { int temp = a; a = b; b = temp; }
Masz tutaj sortowanie, znajdowanie min i max w oddzielych funkcjach. Przeanalizuj to dobrze. |
|
withelm |
» 2012-09-10 22:46:03 @tirou, zepsułeś chłopakowi zabawe ;(, takie coś się pokazuje jak jego kod bedzie syfny, ale bedzie dawać poprawne wyniki. btw, @Verloren, ten kod tirou nie jest za baydzo optymalny wiec nie kieruj sie nim za barydzo |
|
tirou |
» 2012-09-11 10:36:17 Dlaczego nie jest optymalny ? :) (jesli mge zapytac? ) |
|
withelm |
» 2012-09-11 15:58:57 zobacz, sortuje sobie tablice prawda O(n^2) teraz wyszukujesz sobie min/max to przechodzisz po każdym elemencie tablicy O(n) wiec pytanie po co sortowac skoro porzebne skoro tak czy siak przechodzisz po całej tablicy? |
|
tirou |
» 2012-09-12 11:50:28 Bo kolega napisał, że chce posortować tablicę "i" znaleźć min/max. Chodzi tobie o to, że możnato zrobić za 1 razem? |
|
akwes |
» 2012-09-12 12:20:57 Po cholerę szukać maksymalnego i minimalnego elementu w tablicy, która jest posortowana? Przecież wtedy to zawsze będzie pierwszy i ostatni element...
@autor tematu
Chcesz posortować tablicę, czy znaleźć min i max w tablicy ;> ? |
|
Verloren Temat założony przez niniejszego użytkownika |
» 2012-09-14 20:43:44 Hej, widzę że się rozkręciliście z pomocą więc wielkie dzięki wszystkim tu zebranym :P Co do pytania wyżej to chodziło mi o znalezienie największej oraz najmniejszej liczby, ale rozwiązanie już mam więc nie musicie się męczyć ^^ Jeżeli to nie problem to powiedzcie czy jest dobrze: int MAX( int T[], int zakres ) { int i, p_max, MAX; p_max = T[ 0 ]; for( i = 0; i < zakres; i++ ) if( T[ i ] > p_max ) p_max = T[ i ]; MAX = p_max; return MAX; } |
|
1 « 2 » |