Το Bubble sort στο C είναι ένας απλός αλγόριθμος ταξινόμησης που συγκρίνει επανειλημμένα τα παρακείμενα στοιχεία του δεδομένου πίνακα & τα ανταλλάσσει αν είναι σε λάθος σειρά. Ίσως αναρωτιέστε για το όνομα Bubble Sort. Ακολουθούν οι δείκτες που καλύπτονται σε αυτό το άρθρο:
- Τι είναι το Bubble Sort στο C;
- Αλγόριθμος Bubble Sort
- Παράδειγμα Bubble Sort σε C
- Λειτουργία ταξινόμησης φυσαλίδων
- Bubble Sort in C Program
Τι είναι το Bubble Sort στο C;
Η τεχνική ταξινόμησης ονομάζεται έτσι επειδή ο αλγόριθμος ενεργεί σαν μια φούσκα, τα ελαφρύτερα στοιχεία εμφανίζονται και τα βαρύτερα στοιχεία καθίστανται κατεστραμμένα. Ο αλγόριθμος Bubble Sort ταξινομεί τη λίστα σε περάσματα. Τώρα, για να ταξινομήσετε μια λίστα με στοιχεία n Η ταξινόμηση φυσαλίδων απαιτεί περάσματα n-1. Για να το καταστήσουμε σαφέστερο, ας κατανοήσουμε αυτό το βήμα προς βήμα.
Αλγόριθμος Bubble Sort
- Περάστε 1 :
- Συγκρίνονται τα X [0] & X [1] και ανταλλάσσονται εάν X [0]> X [1]
- Συγκρίνονται τα X [1] & X [2] και ανταλλάσσονται εάν X [1]> X [2]
- X [2] & X [3] συγκρίνονται και ανταλλάσσονται εάν X [2]> X [3] και ούτω καθεξής & hellip
- Στο τέλος του περάσματος 1, το μεγαλύτερο στοιχείο της λίστας τοποθετείται στον υψηλότερο δείκτη της λίστας.
- Πέρασμα 2:
- Συγκρίνονται τα X [0] & X [1] και ανταλλάσσονται εάν X [0]> X [1]
- Συγκρίνονται τα X [1] & X [2] και ανταλλάσσονται εάν X [1]> X [2]
- X [2] & X [3] συγκρίνονται και ανταλλάσσονται αν X [2]> X [3] και ούτω καθεξής & hellip
- Στο τέλος του περάσματος 2 το δεύτερο μεγαλύτερο στοιχείο της λίστας τοποθετείται στον δεύτερο υψηλότερο δείκτη της λίστας.
- Πέρασμα n-1:
- Συγκρίνονται τα X [0] & X [1] και ανταλλάσσονται εάν X [0]> X [1]
- Συγκρίνονται τα X [1] & X [2] και ανταλλάσσονται εάν X [1]> X [2]
- X [2] & X [3] συγκρίνονται και ανταλλάσσονται εάν X [2]> X [3] και ούτω καθεξής & hellip
- Στο τέλος αυτής της κάρτας. Το μικρότερο στοιχείο της λίστας τοποθετείται στον πρώτο κατάλογο της λίστας.
Παράδειγμα Bubble Sort σε C
Πίνακας: -5, 35, 2, 13, -15
Περάστε 1
- ( -5, 35 , 2, 13, -15) -> ( -5, 35 , 2, 13, -15), Εδώ, ο αλγόριθμος συγκρίνει τα δύο πρώτα στοιχεία.
- (-5, 35, 2 , 13, -15) -> (-5, 2, 35 , 13, -15), Ανταλλαγή από 35> 2
- (-5, 2, 35, 13 , -15) -> (-5, 2, 13, 35 , -15), Ανταλλαγή από 35> 13
- (-5, 2, 13,35, -15) -> (-5, 2, 13,-15, 35), Ανταλλαγή από 35> -15
Το τελευταίο στοιχείο είναι το μεγαλύτερο στοιχείο.
Πέρασμα 2
- ( -5, 2 , 13, -15, 35) -> (- 5, 2 , 13, -15, 35)
- (-5, 2, 13, 35, -15) -> (-5, 2, 13 , -15, 35)
- (-5, 2, 13, -15 , 35) -> (-5, 2, -15, 13 , 35), Ανταλλαγή από 13> -15
Το δεύτερο τελευταίο στοιχείο είναι το δεύτερο μεγαλύτερο στοιχείο.
οι χορδές στην Java είναι αμετάβλητες
Περάστε 3
- ( -5, 2 , -15, 13, 35) -> ( -5, 2 , -15, 13, 35)
- (-5, 2, -15 , 13, 35) -> (-5, -15, 2 , 13, 35), Ανταλλαγή από 2> -15
Το τρίτο τελευταίο στοιχείο είναι το τρίτο μεγαλύτερο στοιχείο.
Περάστε 4
- ( -5, -15 , 2, 13, 35) -> ( -15, -5 , 2, 13, 35), Ανταλλαγή από -5> -15
Τελικά, το πρώτο είναι το μικρότερο & 2 αρ είναι το δεύτερο μικρότερο στοιχείο του πίνακα. Έτσι, σε αυτήν την περίπτωση, απαιτήθηκαν τέσσερα περάσματα για να ταξινομηθεί ένας πίνακας 5 στοιχείων.
Πριν εξετάσουμε λεπτομερώς τον αλγόριθμο, ας δούμε την πολυπλοκότητα του αλγορίθμου Bubble Sort in C.
Η πολυπλοκότητα του Bubble Sort
- Χειρότερη περίπλοκη περίπτωση:Επί2)
- Καλύτερη πολυπλοκότητα περιπτώσεων:Επί2)
- Μέση πολυπλοκότητα περιπτώσεων:Επί)
Τώρα ας δούμε γρήγορα τον αλγόριθμο, ώστε να προχωρήσουμε μπροστά μπορούμε να γράψουμε τον αλγόριθμο ταξινόμησης Bubble σε C.
Λειτουργία ταξινόμησης φυσαλίδων
void bubbleSort (int array [], int n) {int i, j // Περάστε σε Bubble Sort για (i = 0 iBubble Sort in C Program
#include // Λειτουργία ανταλλαγής στοιχείων void swap (int * a, int * b) {int temp = * a * a = * b * b = temp} // λειτουργία ταξινόμησης φυσαλίδων void bubbleSort (int array [], int n ) {int i, j για (i = 0 i
τι είναι σειριοποιήσιμο στην JavaΤώρα μετά την εκτέλεση του παραπάνω προγράμματος Γ, θα καταλάβατε πώς λειτουργεί το Bubble Sort και πώς να το εφαρμόσετε στη γλώσσα Γ. Ελπίζω ότι αυτό το blog είναι ενημερωτικό και προστιθέμενη αξία για εσάς.
Δείτε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.
Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του άρθρου Bubble Sort in C και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.