โลโก้
ยูเนี่ยนพีเดีย
การสื่อสาร
ดาวน์โหลดได้จาก Google Play
ใหม่! ดาวน์โหลด ยูเนี่ยนพีเดีย บน Android ™ของคุณ!
ติดตั้ง
เร็วกว่าเบราว์เซอร์!
 

การเรียงลำดับแบบผสาน

ดัชนี การเรียงลำดับแบบผสาน

ในสาขาวิทยาการคอมพิวเตอร์ การเรียงลำดับแบบผสาน เป็นขั้นตอนวิธีในการเรียงลำดับที่อาศัยการเปรียบเทียบ และยังเป็นตัวอย่างขั้นตอนวิธีที่ใช้หลักการแบ่งแยกและเอาชนะทำให้ขั้นตอนวิธีนี้มีประสิทธิภาพ O(n log n) ในการอิมพลิเมนต์เพื่อการใช้งานจริง ๆ นั้นสามารถทำได้ทั้งแบบบนลงล่าง (Top-down) และแบบล่างขึ้นบน (Bottom-up) อนึ่งในการอิมพลิเมนต์โดยทั่วไปแล้วการเรียงแบบนี้จะไม่ศูนย์เสียลำดับของข้อมูลที่มีค่าเท่ากัน นั่นคือเป็นการเรียงที่เสถียร การเรียงลำดับแบบผสาน ถูกเสนอขึ้นครั้งแรกโดยจอห์น ฟอน นอยมันน์ในปี..

6 ความสัมพันธ์: รหัสเทียมวิทยาการคอมพิวเตอร์จอห์น ฟอน นอยมันน์ขั้นตอนวิธีการเรียงลำดับขั้นตอนวิธีแบ่งแยกและเอาชนะแถวลำดับ

รหัสเทียม

รหัสเทียม (pseudocode) ใช้เป็นภาษากลางในการอธิบายขั้นตอนการทำงานของโปรแกรมและขั้นตอนวิธี การเขียนรหัสเทียมไม่มีหลักเกณฑ์ตายตัว สำคัญเพียงแต่เขียนให้ผู้อ่านเข้าใจ โดยปกติแล้วจะประยุกต์รูปแบบการเขียนและโครงสร้างมาจากภาษาคอมพิวเตอร์ แต่การเขียนรหัสเทียมจะเป็นลักษณะการเขียนคำอธิบายมากกว่าการเขียนเป็นคำสั่งต่างๆ และการเขียนรหัสเทียมนั้นมักจะไม่ใส่ใจในรายละเอียดการเขียนมากนัก เช่น อาจไม่มีขั้นตอนการประกาศตัวแปร เป้าหมายสำคัญของการเขียนรหัสเทียมคือทำลายกำแพงของภาษาลงไป การเขียนรหัสเทียมจึงไม่ใส่ใจในการเขียนไวยากรณ์ให้ถูกต้องตามหลักภาษา แต่จะเป็นไปตามใจของผู้เขียนมากกว่า รหัสเทียมในอีกนัยหนึ่ง ก็คือ ผังงาน (flowchart) ซึ่งนำเสนอการทำงานของโปรแกรม และขั้นตอนวิธีในรูปแบบของแผนภาพ หมวดหมู่:รหัสต้นฉบับ.

ใหม่!!: การเรียงลำดับแบบผสานและรหัสเทียม · ดูเพิ่มเติม »

วิทยาการคอมพิวเตอร์

วิทยาการคอมพิวเตอร์ หรือ วิทยาศาสตร์คอมพิวเตอร์ (Computer science) เป็นศาสตร์เกี่ยวกับการศึกษาค้นคว้าทฤษฎีการคำนวณสำหรับคอมพิวเตอร์ และทฤษฎีการประมวลผลสารสนเทศ ทั้งด้านซอฟต์แวร์ ฮาร์ดแวร์ และ เครือข่าย ซึ่งวิทยาการคอมพิวเตอร์นั้นประกอบด้วยหลายหัวข้อที่เกี่ยวข้องกับคอมพิวเตอร์ ตั้งแต่ระดับนามธรรม หรือความคิดเชิงทฤษฎี เช่น การวิเคราะห์และสังเคราะห์ขั้นตอนวิธี ไปจนถึงระดับรูปธรรม เช่น ทฤษฎีภาษาโปรแกรม ทฤษฎีการพัฒนาซอฟต์แวร์ ทฤษฎีฮาร์ดแวร์คอมพิวเตอร์ และ ทฤษฎีเครือข่าย ในแง่ของศาสตร์เกี่ยวกับคอมพิวเตอร์นั้น วิทยาการคอมพิวเตอร์เป็นหนึ่งในห้าสาขาวิชาคอมพิวเตอร์ ซึ่งประกอบด้วย สาขาวิทยาการคอมพิวเตอร์ หรือวิทยาศาสตรคอมพิวเตอร์ สาขาวิศวกรรมคอมพิวเตอร์ สาขาวิศวกรรมซอฟต์แวร์ สาขาเทคโนโลยีสารสนเทศ หรือเทคโนโลยีสารสนเทศและการสือสาร และ สาขาคอมพิวเตอร์ธุรกิจ หรือ ระบบสารสนเทศทางธุรก.

ใหม่!!: การเรียงลำดับแบบผสานและวิทยาการคอมพิวเตอร์ · ดูเพิ่มเติม »

จอห์น ฟอน นอยมันน์

อห์น ฟอน นอยมันน์ ในช่วงปี ค.ศ. 1940 จอห์น ฟอน นอยมันน์ (John von Neumann, Neumann János, 28 ธ.ค. ค.ศ. 1903 - 8 ก.พ. ค.ศ. 1957) เป็นนักคณิตศาสตร์ชาวอเมริกันเชื้อสายฮังการี มีผลงานสำคัญในหลายสาขา ทั้ง ควอนตัมฟิสิกส์ วิทยาการคอมพิวเตอร์ และ จะว่าไปแล้วก็ทุกๆ สาขาในวิชาคณิตศาสตร์ เลยก็ว่าได้.

ใหม่!!: การเรียงลำดับแบบผสานและจอห์น ฟอน นอยมันน์ · ดูเพิ่มเติม »

ขั้นตอนวิธีการเรียงลำดับ

ในวิทยาการคอมพิวเตอร์ ขั้นตอนวิธีการเรียงลำดับ (sorting algorithm) คือ ขั้นตอนวิธีที่จัดเรียงสมาชิกของรายการ (list) ให้เป็นไปตามรูปแบบของอันดับที่กำหนด ส่วนใหญ่อันดับที่ใช้กันคือ อันดับตัวเลข และอันดับตัวอักษร การเรียงลำดับที่มีประสิทธิภาพมีความสำคัญต่อขั้นตอนวิธีอื่นๆ (เช่น ขั้นตอนวิธีการค้นหา และ การผสาน) ซึ่งขั้นตอนวิธีเหล่านี้ต้องใช้รายการที่เรียงอย่างถูกต้อง.

ใหม่!!: การเรียงลำดับแบบผสานและขั้นตอนวิธีการเรียงลำดับ · ดูเพิ่มเติม »

ขั้นตอนวิธีแบ่งแยกและเอาชนะ

ในวิทยาการคอมพิวเตอร์ ขั้นตอนวิธีแบ่งแยกและเอาชนะ (divide and conquer; D&C) เป็นวิธีการออกแบบขั้นตอนวิธีโดยมีพื้นฐานมาจากการเรียกซ้ำ ขั้นตอนวิธีแบ่งแยกและเอาชนะทำงานโดยแบ่งปัญหาออกเป็นปัญหาย่อย 2 ส่วนหรือมากกว่านั้นแบบเวียนเกิด ปัญหาถูกแบ่งไปเรื่อย ๆ จนเล็กและง่ายพอที่จะแก้อย่างง่ายดาย หลังจากแก้ปัญหาย่อยเล็ก ๆ เหล่านั้นแล้วก็จะนำคำตอบมารวมกันขึ้นไปเรื่อย ๆ จนสุดท้ายได้คำตอบของปัญหาดั้งเดิม กลวิธีนี้เป็นพื้นฐานของขั้นตอนวิธีที่มีประสิทธิภาพจำนวนมากมาย เช่น การเรียงลำดับ (การเรียงลำดับแบบเร็ว การเรียงลำดับแบบผสาน) การคูณเลขขนาดใหญ่ (ขั้นตอนวิธีของคาราซูบา) การคำนวณการแปลงฟูรีเยไม่ต่อเนื่อง ในอีกด้าน การที่จะเข้าใจและสามารถออกแบบขั้นตอนวิธีแบ่งแยกและเอาชนะได้นั้นต้องใช้ทักษะในระดับหนึ่ง เพราะในการที่จะทำให้ขั้นตอนวิธีมีการเรียกซ้ำต่อไปได้เรื่อย ๆ ในเวลาที่ต้องการ บางครั้งอาจจะต้องหาวิธีสร้างปัญหาย่อยซึ่งซับซ้อนและยากมาก นอกจากนี้ การสร้างขั้นตอนวิธีแบ่งแยกและเอาชนะนั้นไม่มีขั้นตอนอย่างเป็นระบบ ตัวอย่างความซับซ้อนจากการวิเคราะห์หรือออกแบบขั้นตอนวิธีแบ่งแยกและเอาชนะ เช่น การคำนวณหาจำนวนฟีโบนัชชีในเวลา O(\log n) โดยใช้รูปเมทริกซ์ร่วมกับการยกกำลังโดยการยกกำลังสอง ขั้นตอนวิธีแบ่งแยกและเอาชนะ ยังรวมไปถึงขั้นตอนวิธีที่แต่ละปัญหาแบ่งออกเป็นปัญหาย่อยหลายส่วน แต่กลับใช้คำตอบหรือคำนวณคำตอบจากเพียงแค่ปัญหาย่อยเดียวเท่านั้น เช่น การค้นหาแบบทวิภาคบนแถวลำดับที่เรียงแล้ว (หรือขั้นตอนวิธีแบ่งครึ่ง สำหรับการหาคำตอบของรากในการวิเคราะห์เชิงจำนวน)Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest, Introduction to Algorithms (MIT Press, 2000).

ใหม่!!: การเรียงลำดับแบบผสานและขั้นตอนวิธีแบ่งแยกและเอาชนะ · ดูเพิ่มเติม »

แถวลำดับ

ในวิทยาการคอมพิวเตอร์ แถวลำดับ (array) คือโครงสร้างข้อมูลที่เป็นรายการอย่างหนึ่ง ข้อมูล (value) จะถูกเก็บบนหน่วยความจำคอมพิวเตอร์ แบบอยู่ติดกันไปเรื่อย ๆ การเข้าถึงข้อมูลสามารถกระทำได้ผ่านดัชนี (index) หรืออาจเรียกว่า คีย์ โดยดัชนีจะเป็นจำนวนเต็มซึ่งบอกถึงลำดับที่ของข้อมูลในแถวลำดับ นอกจากนี้ ค่าของดัชนียังไปจับคู่กับที่อยู่หน่วยความจำ ผ่านสูตรคณิตศาสตร์ ทำให้สามารถเข้าถึงข้อมูลได้ ตัวอย่างเช่นแถวลำดับที่มีข้อมูล 10 ตัว โดยมีดัชนีตั้งแต่ 0 ถึง 9 สมมุติให้ข้อมูลแต่ละตัวใช้หน่วยความจำ 4 ไบต์ และแถวลำดับนี้มีที่อยู่ในหน่วยความจำคือ 2000 จะได้ว่าที่อยู่หน่วยความจำของข้อมูลตัวที่ i คือ 2000 + 4i แถวลำดับยังสามารถขยายมิติไปเป็นสองมิติหรือมากกว่านั้นได้ เนื่องจากรูปแบบของแถวลำดับสองมิติมีรูปร่างเป็นตาราง คล้ายกับเมตริกซ์ บางทีจึงอาจเรียกแถวลำดับสองมิติว่าเมตริกซ์หรือตาราง (สำหรับตารางโดยส่วนมากแล้วจะหมายความถึงตาราง lookup) เช่นเดียวกับแถวลำดับมิติเดียวที่บางครั้งก็อาจเรียกว่าเวกเตอร์หรือทูเพิล แถวลำดับถือได้ว่าเป็นโครงสร้างข้อมูลที่ถือกำเนิดขึ้นพร้อม ๆ กับการเขียนโปรแกรม และสำคัญมากในการเขียนโปรแกรมเช่นเดียวกัน และแทบจะไม่มีโปรแกรมใดเลยที่ไม่ใช้แถวลำดับ โดยแถวลำดับนี้ยังนำไปอิมพลีเมนต์โครงสร้างข้อมูลอื่นอีกมากมายเช่นรายการหรือสายอักขระ แม้แต่หน่วยเก็บข้อมูลที่มีที่อยู่หน่วยความจำก็อาจจะมองหน่วยเก็บข้อมูลเป็นแถวลำดับขนาดยักษ์ก็ได้.

ใหม่!!: การเรียงลำดับแบบผสานและแถวลำดับ · ดูเพิ่มเติม »

ขาออกขาเข้า
Hey! เราอยู่ใน Facebook ตอนนี้! »