วิธีการติดตั้งโปรแกรม Radix Sort ใน C ให้ดีที่สุด?



บทความนี้จะแนะนำคุณเกี่ยวกับ Radix Sort Program ใน C และติดตามการสาธิตแบบเป็นโปรแกรมเพื่อความเข้าใจที่ดีขึ้น

บทความนี้จะแนะนำ Radix Sort ให้คุณและบอกวิธีใช้ Radix Sort ใน C. คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้

มาเริ่มกันเลย





พูดง่ายๆการเรียงลำดับหมายถึงการจัดเรียงองค์ประกอบที่กำหนดให้เป็นระบบ การเรียงลำดับจะทำในอัลกอริทึมส่วนใหญ่เนื่องจากทำให้การค้นหาง่ายขึ้นซึ่งทำให้อัลกอริทึมมีประสิทธิภาพในที่สุด ในบล็อกนี้เราจะทำความเข้าใจหนึ่งในอัลกอริทึมการเรียงลำดับที่ใช้กันทั่วไปนั่นคือการเรียงลำดับ Radix

Radix sort เป็นอัลกอริธึมการเรียงลำดับจำนวนเต็มแบบไม่เปรียบเทียบ โดยจะเรียงลำดับตัวเลขโดยเริ่มจากตัวเลขที่มีนัยสำคัญน้อยที่สุด (เช่นตัวเลขที่อยู่ทางขวา) ไปยังตัวเลขที่มีนัยสำคัญที่สุด (เช่นตัวเลขอยู่ทางซ้าย) Radix sort ใช้การเรียงลำดับการนับเป็นรูทีนย่อยในการจัดเรียง
ขอบเขตล่างสำหรับอัลกอริทึมการเรียงลำดับตามการเปรียบเทียบ (เช่นการเรียงลำดับแบบฮีปการเรียงลำดับด่วนการจัดเรียงแบบรวม) คือ & Omega (nLogn) และไม่สามารถปรับปรุงได้นอกเหนือจาก nLogn ถ้าเราพูดถึงการเรียงลำดับการนับมันเป็นอัลกอริธึมการเรียงลำดับเวลาเชิงเส้นที่มีความซับซ้อนของเวลา O (n + k) โดยที่ช่วงอยู่ระหว่าง 1 ถึง k ตอนนี้ปัญหาเกี่ยวกับการเรียงลำดับการนับคือใช้ O (n2) เมื่อองค์ประกอบอยู่ในช่วง 1 ถึง n2



แปลงจาก double เป็น int java

ดังนั้นในการจัดเรียงอาร์เรย์ด้วยองค์ประกอบที่อยู่ในช่วงเวลาเชิงเส้นตั้งแต่ 1 ถึง n2 เราจำเป็นต้องมีการเรียงลำดับเรดิกซ์ การเรียงลำดับ Radix จะจัดเรียงเลขโดดของอาร์เรย์โดยเริ่มจากหลักที่มีนัยสำคัญน้อยที่สุดไปจนถึงหลักที่มีนัยสำคัญที่สุด Radix sort ใช้การเรียงลำดับการนับเป็นรูทีนย่อยในการจัดเรียง

ไปต่อกับบทความนี้เกี่ยวกับ Radix Sort Program ใน C

Radix Sort Algorithm

ทำตามขั้นตอนต่อไปนี้สำหรับตัวเลขทั้งหมดโดยเริ่มจากตัวเลขที่มีนัยสำคัญน้อยที่สุดอยู่ทางขวาโดยเลื่อนไปยังตัวเลขที่มีนัยสำคัญที่สุดที่อยู่ทางซ้าย



จัดเรียงองค์ประกอบโดยใช้การเรียงลำดับการนับตามตัวเลขปัจจุบัน
ตัวอย่าง:

อาร์เรย์เดิม:
140, 65, 85, 110, 612, 54, 12, 86

การเรียงลำดับตัวเลขที่มีนัยสำคัญน้อยที่สุดนั่นคือในที่เดียวให้

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

หมายเหตุ: เนื่องจาก 612 ปรากฏก่อน 12 และการเรียงลำดับจะดำเนินการสำหรับหลักเดียวเท่านั้นดังนั้น 612 จึงปรากฏก่อน 12 หลังจากการทำซ้ำนี้

การจัดเรียงตามหลักถัดไปเช่นที่อันดับ 10 จะให้:

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

จัดเรียงตามตัวเลขที่มีนัยสำคัญที่สุดเช่นปัจจุบันอยู่ที่ตำแหน่ง 100 จะให้:

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

ไปต่อกับบทความนี้เกี่ยวกับ Radix Sort Program ใน C

โปรแกรมเรียงลำดับ Radix ใน C

ดูครั้งแรกที่ฟังก์ชั่นการเรียงลำดับ Radix

รับวันที่จากสตริง java

ฟังก์ชัน Radix Sort:

เป็นโมฆะ radixsort (int array [], int n) {// รับจำนวนที่มากที่สุดเพื่อให้ทราบจำนวนหลักสูงสุด int m = getMax (array, n) int dig // การเรียงลำดับการนับจะดำเนินการสำหรับทุกหลักสำหรับ (dig = 1 m / dig> 0 dig * = 10) countSort (อาร์เรย์, n, ขุด)}

ไปต่อกับบทความนี้เกี่ยวกับ Radix Sort Program ใน C

นับฟังก์ชันเรียงลำดับ:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // จัดเก็บจำนวนเหตุการณ์ที่เกิดขึ้นใน count [] สำหรับ (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // คัดลอก อาร์เรย์เอาต์พุตไปยัง arr [] ดังนั้น arr [] ในขณะนี้ // มีตัวเลขที่เรียงตามตัวเลขปัจจุบันสำหรับ (i = 0 i

ก้าวไปข้างหน้าเรามาเขียนโปรแกรม C เพื่อใช้ Radix sort

ตัวอย่าง:

#include // ฟังก์ชันเพื่อค้นหาจำนวนที่ใหญ่ที่สุด int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // ฟังก์ชันสำหรับ Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // จัดเก็บจำนวนเหตุการณ์ใน count [] สำหรับ (i = 0 ผม= 0 i--) {output [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)} // ฟังก์ชันเพื่อพิมพ์ Array เป็นโมฆะ พิมพ์ (int arr [], int n) {int i สำหรับ (i = 0 i

เอาต์พุต

โปรแกรม Output- Radix Sort ใน C- Edureka

หลังจากเรียกใช้โปรแกรมข้างต้นแล้วคุณจะเข้าใจ Radix Sort Program In C ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้เกี่ยวกับ 'Quicksort in Java' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด