כיצד ליישם בצורה הטובה ביותר תוכנית מיון רדיקס ב- C?



מאמר זה יציג בפניכם את תוכנית ה- Radix Sort In C וימשיך אחריה הדגמה פרוגרמטית להבנה טובה יותר.

מאמר זה יציג בפניכם את Radix Sort ויגיד לכם כיצד ליישם את Radix Sort ב C. הסימנים הבאים יוסרו במאמר זה,

אז בואו נתחיל אז,





במילים פשוטות, מיון פירושו לסדר את האלמנטים הנתונים בסדר שיטתי. המיון נעשה ברוב האלגוריתמים מכיוון שהוא מקל על החיפוש מה שבסופו של דבר הופך את האלגוריתם ליעיל. בבלוג זה נבין את אחד האלגוריתמים הנפוצים הנפוצים כלומר מיון Radix.

מיון רדיקס הוא אלגוריתם מיון שלם שאינו משווה. הוא מבצע מיון ספרות לפי ספרות החל מספרה הכי פחות משמעותית (כלומר ספרה שנמצאת מימין) לספרה משמעותית ביותר (כלומר ספרה שנמצאת משמאל). מיון רדיקס משתמש במיון ספירה כתת-דרך למיון.
הגבול התחתון עבור אלגוריתם מיון מבוסס השוואה (כגון מיון ערימה, מיון מהיר, מיזוג מיון) הוא אומגה (nLogn), ולא ניתן לשפר אותם מעבר ל- nLogn. אם אנו מדברים על ספירת מיון, זהו אלגוריתם מיון זמן ליניארי עם מורכבות זמן O (n + k), כאשר הטווח נע בין 1 ל- k. כעת, הבעיה בספירת המינים היא שלוקח O (n2) כאשר האלמנטים נעים בין 1 ל- n2.



לכן, כדי למיין מערך עם אלמנטים שנעים בין 1 ל n2 בזמן ליניארי, אנחנו צריכים מיון רדיקס. Radix ממיין את סדר המערך לפי ספרה החל מספרה לפחות משמעותית לספרה המשמעותית ביותר. מיון רדיקס משתמש במיון ספירה כתת-דרך למיון.

בהמשך למאמר זה על תוכנית Radix Sort In C,

אלגוריתם מיון רדיקס

בצע את השלבים הבאים עבור כל הספרות החל מהספרה הכי פחות משמעותית שנמצאת מימין, ועבר לעבר הספרה המשמעותית ביותר שנמצאת בשמאל.



מיין את האלמנטים באמצעות ספירת מיון לפי הספרה הנוכחית.
דוגמא:

מערך מקורי:
140, 65, 85, 110, 612, 54, 12, 86

מיון הספרה הכי פחות משמעותית כלומר במקום אחד, נותן

מיזוג תוכנית מיון ב- Java

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

הערה: כמו 612 מופיע לפני 12, והמיון נעשה רק עבור ספרה אחת, ולכן 612 מופיע לפני 12 אחרי איטרציה זו.

מיון לפי הספרה הבאה, כלומר במקום העשרים, נותן:

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

מיון לפי הספרה המשמעותית ביותר, כלומר נמצא במקום ה -100, נותן:

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

בהמשך למאמר זה על תוכנית Radix Sort In C,

תוכנית מיון רדיקס ב- C

מבט ראשון על פונקציית המיון של Radix

פונקציית מיון רדיקס:

בטל radixsort (מערך int [], int n) {// קבל את המספר הגדול ביותר כדי לדעת את המספר המרבי של ספרות int m = getMax (array, n) int dig // מיון הספירה מבוצע עבור כל ספרה עבור (dig = 1 m / dig> 0 dig * = 10) countSort (מערך, n, dig)}

בהמשך למאמר זה על תוכנית Radix Sort In C,

ספירת מיון פונקציה:

void countSort (מערך int [], 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 [] עכשיו // מכיל מספרים ממוינים לפי הספרה הנוכחית עבור (i = 0 i

בכדי להתקדם, בוא נכתוב תוכנית C ליישום מיון Radix.

דוגמא:

# כלול // פונקציה למציאת המספר הגדול ביותר int getMax (מערך int [], int n) {int max = array [0] int i עבור (i = 1 i max) max = array [i] return max} // פונקציה עבור ספירת מיון חלל ספירה סוג (מערך int [], int n, int dig) {int פלט [n] int i, ספירה [10] = {0} // אחסן ספירת הופעות בספירה [] עבור (i = 0 אני= 0 i--) {פלט [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // העתק את מערך פלט ל- arr [], כך ש arr [] עכשיו // מכיל מספרים ממוינים לפי הספרה הנוכחית עבור (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // פונקציה להדפסה מערך ריק הדפס (int arr [], int n) {int i עבור (i = 0 i

תְפוּקָה

מחרוזת php לנתח למערך

פלט- תוכנית מיון רדיקס ב- C- אדוריקה

כעת לאחר ביצוע התוכנית הנ'ל היית מבין את תוכנית Radix Sort In C. לפיכך הגענו לסוף מאמר זה בנושא 'Quicksort in Java'. אם ברצונך ללמוד עוד, עיין ב , חברת למידה מקוונת אמינה. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה נועד להכשיר אותך למושגי ליבה מרכזיים ומתקדמים יחד עם מסגרות Java שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.