{ Visit: http://g-lts.info/ for more code! } #include #define MAX_VALUE 10 void insertion_sort ( int arr[] ); /* Ταξινόμηση με την μέθοδο της εισαγωγή ( Insertion Sort ) κατά αύξουσα σειρά. */ int main ( void ) { int pinakas [] = {15, 52, -5, 430, 3, 5, 44, 89, 9, 5}; /* Ταξινομημένο : -5 3 5 5 9 15 44 52 89 430 */ int i; /* ===- Εμφάνιση στοιχείων του αταξινόμητου πίνακα. -=== */ for ( i=0; i= 0) && (key < arr[j]) ) /* Όσο ΔΕΝ έχουμε φτάσει στη πρώτη θέση του πίνακα && ΌΣΟ το νέο ΝΕΟ στοιχείο που ελέγχεται ( από τον "ΜΗ ταξινομημένο ΥΠΟπίνακα" -που βρίσκεται στα δεξιά- ) είναι ΜΙΚΡΌΤΕΡΟ από το στοιχείο που δείχνει ο δείκτης j που "βλέπει" στον "ταξινομημένο ΥΠΟπίνακα" */ { arr[j + 1] = arr[j]; /* Το περιεχόμενο πάει μια θέση ΔΕΞΙΆ (μπροστά) επειδή θέλουμε αύξουσα ταξινόμηση. */ j--; /* Πάμε άλλη μια θέση πίσω. */ /* Γενικά μετατοπίζονται όσα είναι μικρότερα του -key- μία θέση εμπρός ( η μοναδική τιμή που χάνετε είναι αυτή της θέσης που ΠΉΡΑΜΕ το key ) αλλά και για αυτό ακριβώς τον λόγο δε μας νοιάζει. ;) */ } arr[j + 1] = key; /* Αν το στοιχείο πλέον που βρίσκεται στην θέση j ΔΕΝ είναι μικρότερο του key, τότε οκ πάμε μια θέση εμπρός και εκχωρούμε το key. */ } } { Visit: http://g-lts.info/ for more code! }