Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΦρίξος Παπαϊωάννου Τροποποιήθηκε πριν 6 χρόνια
1
Ταξινόμηση Ορισμός: Δοθέντων των στοιχείων a1,a2,… ,an η ταξινόμηση συνίσταται στην αντιμετάθεση της θέσης των στοιχείων ώστε να τοποθετηθούν με μια νέα σειρά ak1, ak2, ….., akn ώστε με δεδομένη μια συνάρτηση διάταξης f να ισχύει f(ak1) ≤ f(ak2) ≤ ….. ≤ f(akn)
2
Ταξινόμηση bubblesort
Σαρώνουμε τον πίνακα “a” από το τέλος του («βυθός») μέχρι την αρχή («επιφάνεια»). Σε κάθε σάρωση συγκρίνουμε το τρέχον στοιχείο (στη θέση n) με το αμέσως προηγούμενό του (θέση n-1). Αν το τρέχον στοιχείο είναι μικρότερο από το προηγούμενό του (a[n] < a[n-1]) αντιμεταθέτουμε τα στοιχεία. Με αυτό τον τρόπο στην πρώτη θέση του πίνακα (a[0]) στην πρώτη σάρωση θα βρεθεί το μικρότερο από όλα τα στοιχεία του πίνακα. Επαναλαμβάνουμε τη σάρωση ξεκινώντας από το τέλος πάλι του πίνακα και κάνουμε ό,τι και στο πρώτο βήμα με τη διαφορά ότι αυτή τη φορά σταματάμε στη σύγκριση του a[2] με το a[1] αφού στο a[0] βρίσκεται ήδη το μικρότερο στοιχείο του πίνακα (από το βήμα 1). Επαναλαμβάνουμε τις σαρώσεις (για πίνακα x θέσεων θα χρειαστούν x-1 σαρώσεις) μέχρι να ταξινομηθούν όλα τα στοιχεία του πίνακα. Κάθε φορά σταματάμε τις συγκρίσεις μια θέση χαμηλότερα.
3
Ταξινόμηση Φυσαλίδας (bubble-sort)
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 52 12 71 56 5 10 19 90 45 5 52 12 71 56 10 19 45 90 5 10 52 12 71 56 19 45 90 5 10 12 52 19 71 56 45 90 5 10 12 19 52 45 71 56 90 5 10 12 19 45 52 56 71 90 5 10 12 19 45 52 56 71 90 5 10 12 19 45 52 56 71 90
4
Ταξινόμηση bubblesort: Περιγραφή με ψευδοκώδικα
Για i από 1 μέχρι Ν-1 Για j από Ν-1 μέχρι i με_βήμα -1 Αν (Α[j-1] > A[j]) Τότε Temp <-- A[j-1] A[j-1] <-- A[j] A[j] <-- Temp Τέλος_Αν Τέλος_Επανάληψης
5
Ταξινόμηση bubblesort: Υλοποίηση με γλώσσα C
#include <stdio.h> int main() { int a[ 10 ]; // Πίνακας ακεραίων 10 θέσεων int temp,i,j; // Διαβάζουμε τα στοιχεία του πίνακα printf ( "Please enter your list of ten numbers: " ); for ( i = 0 ; i < 10; i++ ) { scanf( "%d", &number ); a[i] = number; } // Εφαρμόζουμε bubblesort for (i = 1; i < 10; i = i+1) { for (j = 9; j >= i; j = j-1) { if (a[j] < a[j-1]) { // αντιμετάθεση τιμών temp = a[j-1]; a[j-1]= a[j]; a[j] = temp; // Εμφάνιση ταξινομημένου πίνακα printf ( "%d \n", a[i]);
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.