Ποια είναι η πολυπλοκότητα του αλγορίθμου ταξινόμησης σωρού;
Ποια είναι η πολυπλοκότητα του αλγορίθμου ταξινόμησης σωρού;

Βίντεο: Ποια είναι η πολυπλοκότητα του αλγορίθμου ταξινόμησης σωρού;

Βίντεο: Ποια είναι η πολυπλοκότητα του αλγορίθμου ταξινόμησης σωρού;
Βίντεο: Αλγόριθμοι & Πολυπλοκότητα - Ανάλυση Αλγορίθμων (Διάλεξη) 2024, Ενδέχεται
Anonim

Η ταξινόμηση σωρού είναι ένας επιτόπιος αλγόριθμος. Πολυπλοκότητα χρόνου : Χρονική πολυπλοκότητα του heapify είναι O(Logn). Χρονική πολυπλοκότητα του createAndBuildHeap() είναι O(n) και συνολικά χρονική πολυπλοκότητα Η ταξινόμηση σωρού είναι O(nLogn).

Σε σχέση με αυτό, ποιος είναι ο αλγόριθμος της ταξινόμησης σωρού;

Αλγόριθμος ταξινόμησης σωρού χωρίζεται σε δύο βασικά μέρη: Δημιουργία α Σωρός της μη ταξινομημένης λίστας/πίνακας. Μετά ένα ταξινομημένο Ο πίνακας δημιουργείται αφαιρώντας επανειλημμένα το μεγαλύτερο/μικρότερο στοιχείο από το σωρός και εισάγοντάς το στον πίνακα. ο σωρός ανακατασκευάζεται μετά από κάθε αφαίρεση.

Ομοίως, ποιος είναι ο τυπικός χρόνος εκτέλεσης ενός αλγορίθμου ταξινόμησης σωρού; Ωστόσο, η γρήγορη ταξινόμηση έχει τη χειρότερη περίπτωση χρόνος τρεξίματος του O (n 2) O(n^2) O(n2) και μια πολυπλοκότητα χώρου στη χειρότερη περίπτωση O (log ? n O(log n O(logn), οπότε αν είναι πολύ σημαντικό να έχουμε μια γρήγορη χειρότερη περίπτωση χρόνος τρεξίματος και αποτελεσματική χρήση του χώρου, heapsort είναι η καλύτερη επιλογή.

Ομοίως, τίθεται το ερώτημα, ποια είναι η πολυπλοκότητα της λειτουργίας Heapify;

Η κύρια ιδέα είναι ότι στο build_heap αλγόριθμος το πραγματικό συσσωρεύω Το κόστος δεν είναι O(log n) για όλα τα στοιχεία. Όταν συσσωρεύω ονομάζεται, ο χρόνος εκτέλεσης εξαρτάται από το πόσο το στοιχείο faran μπορεί να μετακινηθεί προς τα κάτω στο δέντρο πριν τερματιστεί η διαδικασία. Με άλλα λόγια, εξαρτάται από το ύψος του στοιχείου στο σωρό.

Ποιος αλγόριθμος ταξινόμησης έχει την καλύτερη ασυμπτωτική πολυπλοκότητα;

Για Καλύτερος Εισαγωγή θήκης Είδος και Σωρός Η ταξινόμηση είναι η καλύτερη ένα ως δικό τους καλύτερος χρόνος εκτέλεσης υπόθεσης περίπλοκο είναι O(n). Για μέση περίπτωση καλύτερο ασυμπτωτικό χρόνος εκτέλεσης περίπλοκο είναι O(nlogn) που δίνεται από το Merge Είδος , Σωρός Είδος , Γρήγορα Είδος . Για τη χειρότερη περίπτωση καλύτερος χρόνος εκτέλεσης περίπλοκο είναι O(nlogn) που δίνεται από το Merge Είδος , Σωρός Είδος.

Συνιστάται: