katina Δημοσ. 20 Φεβρουαρίου 2011 Δημοσ. 20 Φεβρουαρίου 2011 Καλησπέρα γνωρίζει κανένας πως μπορώ να κάνω ταξινόμηση με quicksort, εμφανίζοντας τη θέση του πίνακα και όχι την τιμή. πχ. ενας μονοδιάστατος πίνακας έχει κιλά, αλλά εγώ θέλω να εμφανίσω ποια θέση του πίνακα έχει τα περισσότερα κιλά. Ευχαριστώ πολύ
kagelos Δημοσ. 20 Φεβρουαρίου 2011 Δημοσ. 20 Φεβρουαρίου 2011 Αυτό δεν είναι ταξινόμηση, αλλά εύρεση μεγίστου. Βέβαια θα μπορούσες να κάνεις ταξινόμηση και ο μέγιστος να είναι είτε το πρώτο είτε το τελευταίο στοιχείο του πίνακα, ανάλογα την σειρά με την οποία ταξινομείς.
Directx Δημοσ. 20 Φεβρουαρίου 2011 Δημοσ. 20 Φεβρουαρίου 2011 Καλησπέρα γνωρίζει κανένας πως μπορώ να κάνω ταξινόμηση με quicksort, εμφανίζοντας τη θέση του πίνακα και όχι την τιμή. πχ. ενας μονοδιάστατος πίνακας έχει κιλά, αλλά εγώ θέλω να εμφανίσω ποια θέση του πίνακα έχει τα περισσότερα κιλά. Ευχαριστώ πολύ Θα συμφωνήσω με τον φίλο kagelos από εκεί και πέρα θα μπορούσε να γίνει με διάφορους τρόπους όπως: > /* qsort max, xdir */ #include <stdio.h> #include <stdlib.h> #define _ARR_LEN 12 int _fcmp(const void*, const void*); int main(void) { int v[_ARR_LEN], m = 0, p; /* Init. v with fixed-random values */ for(int i = 0; i < _ARR_LEN; i++) { v[i] = rand() % 100; printf("[%.2d] %.3d\n", i, v[i]); } /* Find maximum (positive) value without QSort.. */ for(int i = 0; i < _ARR_LEN; i++) if(v[i] > m) { m = v[i]; p = i; /* Track value array index */ } printf("\nMaximum element: %d at #%d\n", m, p); /* Find maximum value with QSort.. */ qsort(v, _ARR_LEN, sizeof(int), _fcmp); printf("Maximum element with qsort: %d at top of array\n", v[0]); printf("\nPress enter to exit.."); getchar(); return 0; } int _fcmp(const void *a, const void * { /* qsort comparison function */ if(*(int*)a > *(int*) return -1; /* Move max values on top of array */ if(*(int*)a < *(int*) return 1; /* Move min values to bottom of array */ return 0; } ΕΞΟΔΟΣ: > [00] 030 [01] 082 [02] 090 [03] 056 [04] 017 [05] 095 [06] 015 [07] 048 [08] 026 [09] 004 [10] 058 [11] 071 Maximum element: 95 at #5 Maximum element with qsort: 95 at top of array Press enter to exit.. Καλή συνέχεια!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.