Πώς να εφαρμόσετε καλύτερα το πρόγραμμα ταξινόμησης Radix σε C;

Αυτό το άρθρο θα σας παρουσιάσει το πρόγραμμα ταξινόμησης Radix In C και θα το ακολουθήσει μια επίδειξη μέσω προγραμματισμού για καλύτερη κατανόηση.

Αυτό το άρθρο θα σας παρουσιάσει το Radix Sort και θα σας πει πώς να εφαρμόσετε το Radix Sort στο C. Οι ακόλουθοι δείκτες θα καλυφθούν σε αυτό το άρθρο,

δημιουργήστε έκλειψη για java

Ας ξεκινήσουμε λοιπόν,





Με απλά λόγια, η ταξινόμηση σημαίνει τακτοποίηση των δεδομένων στοιχείων με συστηματική σειρά. Η ταξινόμηση γίνεται στους περισσότερους από τους αλγόριθμους, επειδή διευκολύνει την αναζήτηση, κάτι που τελικά καθιστά τον αλγόριθμο αποτελεσματικό. Σε αυτό το ιστολόγιο θα κατανοήσουμε έναν από τους αλγόριθμους αποθήκευσης που χρησιμοποιούνται συνήθως, όπως το είδος Radix.

Το είδος Radix είναι ένας μη συγκριτικός αλγόριθμος ταξινόμησης ακέραιου. Κάνει ψηφία με ταξινόμηση ψηφίων ξεκινώντας από το λιγότερο σημαντικό ψηφίο (δηλ. Ψηφίο που υπάρχει στα δεξιά) έως το πιο σημαντικό ψηφίο (δηλαδή ψηφίο που υπάρχει στα αριστερά). Η ταξινόμηση Radix χρησιμοποιεί την καταμέτρηση ταξινόμησης ως υπορουτίνα για ταξινόμηση.
Το κάτω όριο για τον αλγόριθμο ταξινόμησης βάσει σύγκρισης (όπως Heap sort, Quick Sort, Merge Sort) είναι & Omega (nLogn) και δεν μπορεί να βελτιωθεί πέρα ​​από το nLogn. Αν μιλάμε για καταμέτρηση ταξινόμησης, είναι ένας γραμμικός αλγόριθμος ταξινόμησης χρόνου με πολυπλοκότητα χρόνου O (n + k), όπου το εύρος κυμαίνεται μεταξύ 1 και k. Τώρα, το πρόβλημα με την καταμέτρηση ταξινόμησης είναι, παίρνει O (n2) όταν τα στοιχεία κυμαίνονται από 1 έως n2.



Έτσι, για να ταξινομήσετε έναν πίνακα με στοιχεία που κυμαίνονται από 1 έως n2 σε γραμμικό χρόνο, χρειαζόμαστε ταξινόμηση ακτίνας. Το Radix ταξινομεί το ψηφίο του πίνακα με ψηφίο ξεκινώντας από το λιγότερο σημαντικό ψηφίο στο πιο σημαντικό ψηφίο. Η ταξινόμηση Radix χρησιμοποιεί την καταμέτρηση ταξινόμησης ως υπορουτίνα για ταξινόμηση.

Προχωρώντας με αυτό το άρθρο σχετικά με το πρόγραμμα ταξινόμησης Radix σε C,

Αλγόριθμος ταξινόμησης Radix

Εκτελέστε τα παρακάτω βήματα για όλα τα ψηφία ξεκινώντας από το λιγότερο σημαντικό ψηφίο που υπάρχει στα δεξιά, προχωρώντας προς το πιο σημαντικό ψηφίο που υπάρχει στα αριστερά.



Ταξινόμηση των στοιχείων χρησιμοποιώντας καταμέτρηση ταξινόμησης σύμφωνα με το τρέχον ψηφίο.
Παράδειγμα:

Πρωτότυπη σειρά:
140, 65, 85, 110, 612, 54, 12, 86

Η ταξινόμηση του λιγότερο σημαντικού ψηφίου, δηλαδή σε ένα μέρος, δίνει

140, 110, 612, 12, 54, 65, 85, 86

ΣΗΜΕΙΩΣΗ: Καθώς το 612 εμφανίζεται πριν από το 12 και η ταξινόμηση γίνεται μόνο για ένα ψηφίο, έτσι το 612 εμφανίζεται πριν από το 12 μετά από αυτήν την επανάληψη.

Η ταξινόμηση κατά επόμενο ψηφίο, δηλαδή στη θέση 10s, δίνει:

τερματίστε ένα πρόγραμμα στην Ιάβα

110, 612, 12, 140, 54, 65, 85, 86

Η ταξινόμηση κατά το πιο σημαντικό ψηφίο, δηλαδή στο σημείο της δεκαετίας του 100, δίνει:

012, 054, 065, 085, 086, 110, 140, 612

Προχωρώντας με αυτό το άρθρο σχετικά με το πρόγραμμα ταξινόμησης Radix σε C,

Πρόγραμμα ταξινόμησης Radix σε C

Πρώτη ματιά στη λειτουργία ταξινόμησης Radix

Λειτουργία ταξινόμησης Radix:

void radixsort (int array [], int n) {// Λάβετε τον μεγαλύτερο αριθμό για να γνωρίζετε τον μέγιστο αριθμό ψηφίων int m = getMax (array, n) int dig // Η ταξινόμηση ταξινόμησης πραγματοποιείται για κάθε ψηφίο για (dig = 1 m / dig> 0 dig * = 10) countSort (πίνακας, n, dig)}

Προχωρώντας με αυτό το άρθρο σχετικά με το πρόγραμμα ταξινόμησης Radix σε C,

Λειτουργία μέτρησης ταξινόμησης:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Καταμέτρηση καταστημάτων σε μετρήσεις [] για (i = 0 i= 0 i--) {έξοδος [count [(array [i] / dig]% 10] - 1] = array [i] count [(array [i] / dig]% 10] -} // Αντιγράψτε το πίνακας εξόδου σε arr [], έτσι ώστε το arr [] now // περιέχει ταξινομημένους αριθμούς σύμφωνα με το τρέχον ψηφίο για (i = 0 i

Προχωρώντας μπροστά, ας γράψουμε ένα πρόγραμμα C για να εφαρμόσουμε το είδος Radix.

Παράδειγμα:

#include // Συνάρτηση εύρεσης του μεγαλύτερου αριθμού int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Λειτουργία για την αρίθμηση ταξινόμησης άκυρη μέτρηση Ταξινόμηση (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Αριθμός καταστημάτων εμφανίσεων στο πλήθος [] για (i = 0 Εγώ= 0 i--) {έξοδος [count [(array [i] / dig]% 10] - 1] = array [i] count [(array [i] / dig]% 10] -} // Αντιγράψτε το πίνακας εξόδου σε arr [], ώστε το arr [] now // να περιέχει ταξινομημένους αριθμούς σύμφωνα με το τρέχον ψηφίο για (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Λειτουργία για εκτύπωση της σειράς άκυρη εκτύπωση (int arr [], int n) {int i για (i = 0 i

Παραγωγή

σαφής τύπος χύτευσης σε java

Έξοδος - Πρόγραμμα ταξινόμησης Radix στο C- Edureka

Τώρα, αφού εκτελέσετε το παραπάνω πρόγραμμα, θα καταλάβατε το πρόγραμμα ταξινόμησης Radix In C. Έτσι, έχουμε φτάσει στο τέλος αυτού του άρθρου σχετικά με το «Quicksort in Java». Εάν θέλετε να μάθετε περισσότερα, ρίξτε μια ματιά στο , μια αξιόπιστη εταιρεία διαδικτυακής μάθησης. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.