ความสำคัญของการจัดเรียงข้อมูล เทคนิคมาจากลักษณะการจัดไพ่ในมือของผู้เล่น คือ เมื่อผู้เล่นได้ไพ่ใบใหม่เพิ่มขึ้นมา จะนำไพ่ใบนั้นไปแทรกในตำแหน่งที่เหมาะสม ทำให้ไพ่ในมือบางส่วนต้องขยับตำแหน่งออกไป ซึ่งการจัดเรียงลำดับข้อมูลแบบแทรกนี้จะเริ่มพิจารณาคีย์ในตำแหน่งที่ 2 เป็นต้นไป หลักการ คือ จะอ่านข้อมูลไปทีล่ะตัว แล้วนำไปแทรกลงในตำแหน่งที่เหมาะสมบนข้อมูลใหม่ที่เตรียมไว้มีขั้นตอนดังนี้ ตัวอย่างเช่น : ให้ข้อมูล 2 5 1 4 3 มาจัดเรียงแบบ Insertion sort 2. การจัดเรียงข้อมูลแบบเลือ หรือ selection sortการเรียงลำดับข้อมูลแบบเลือก ถือว่าเป็นวิธีการเรียงลำดับข้อมูลที่เรียบง่ายตรงไปตรงมา การทำงานในแต่ล่ะรอบของวิธีนี้จะค้นหาหรือสแกนค่าตัวเลยที่มีค่าน้อยที่สุดภายในลิสต์ โดยในรอบแรกจะเริ่มต้นสแกนค้นหาตั้งแต่ตัวแรกจนถึงตัวสุดท้าย หลังจากที่ได้พบตำแหน่งของค่าน้อยที่สุดแล้ว ก็จะทำการสลับตำแหน่งกัน จากนั้นในรอบต่อไปก็จะขยับตำแหน่งไปยังตัวถัดไป ซึ่งก็คือ ตัวที่ 2 และทำการสแกนข้อมูลที่มีค่าน้อยที่สุดตั้งแต่ตัวที่ 2 ไปจนถึงตัวสุดท้ายเมื่อพบแล้ว ก็จะสลับตำแหน่งกันเช่นเคย จนจะทำเช่นนี้ไปเรื่อยๆ จนครบทุกตัว ก็จะได้ชุดข้อมูลที่จัดเรียงสมบูรณ์ มีหลักการและขั้นตอนดังนี้
ตัวอย่างเช่น : ให้ข้อมูล 3 1 4 8 5 2 9 6 7 ให้จัดเรียงแบบ selection sort3. การจัดเรียงข้อมูลแบบฟองอากาศ หรือ bubble sort
ในการเรียงลำดับข้อมูลแบบ Bubble Sort เป็นหลักการเรียงลำดับข้อมูลด้วยการเปรียบเทียบข้อมูลเป็นคู่ที่ติดกันในแต่ล่ะรอบ มีการทำงาน เพื่อสลับตำแหน่งกันดังนี้
ตัวอย่างเช่น : ให้ข้อมูล 2 3 4 5 1 ให้จัดเรียงแบบ bubble sort โดยสีเขียวแสดงคู่ที่เห็นว่าข้อมูลอยู่ถูตำแหน่งแล้วจึงไม่มีการสหลับ สวนสีแดงแสดงถึง การเปียบเทียบคู่แล้วอยู่ไม่ถูตำแหน่งแล้วสหลับที่ จากนั้นก็ไปเปียบเทียบกับข้อมูลตัวถัดไปทำแบบนี้ไปเรื้อยๆจนกวาข้อมูลจะอยู่ถูกตำแหน่ง4. การจัดเรียงข้อมูลแบบรวมข้อมูลเข้าด้วยกัน หรือ Merge sortเป็นการเรียงลำดับที่อาศัยหลักการ Divide and Conquer โดยจะแบ่งข้อมูลออกป็น 2 ส่วน ซึ่งแต่ละส่วนจะแบ่งย้อย ข้อมูลออกป็น 2 ส่วนเรื่อยไปจนกระทั่งไม่สามารถแบ่งได้อีก แล้วจึงเรียงลำดับข้อมูลแต่ละส่วนย่อย จากนั้นนำข้อมูลแต่ละส่วนย่อยมารวม (Merge)เข้าเป็นข้อมูลชุดเดียวกันพร้อมทั้งเรียงลำดับข้อมูลจากน้อยไปหามาก ตัวอย่างเช่น : ให้ข้อมูล 12 35 87 26 9 28 7 ให้จัดเรียงแบบ Merge sort โดยแยกข้อมูลออกเป็นสองส่วนจนไม่สามารถแยกได้แล้ว แล้วเปลียบเทียบที่ละสวนโดยการจัดเรียงข้อมูลไปที่ละสวนแล้วค่อยๆรวมข้อมูลเข้าด้วยกันเรื่อยๆ จนข้อมูลเรียงรำดับอย่างถูกตำแหน่ง5. การจัดเรียงข้อมูลแบบเร็ว หรือ Quick sortป็นการเรียงลำดับที่อาศัยหลักการ Divide and Conquer โดยจะแบ่งข้อมูลออกป็น 2 ส่วน ซึ่งแต่ละส่วนจะแบ่งย้อย ข้อมูลออกป็น 2 ส่วนเรื่อยไปจนกระทั่งไม่สามารถแบ่งได้อีก แล้วจึงเรียงลำดับข้อมูลแต่ละส่วนย่อย จากนั้นนำข้อมูลแต่ละส่วนย่อยมารวม (Merge)เข้าเป็นข้อมูลชุดเดียวกันพร้อมทั้งเรียงลำดับข้อมูล มีขั้นตอนในการจัดเรียงข้อมูลดังนี้
ตัวอย่างเช่น : ให้ข้อมูล 5 1 1 4 8 6 3 ให้จัดเรียงแบบ Quick sort โดยหาค่าตำแหน่งสว่นกลางแล้วเปียบเทียบส่วนกลางหากเปียบเทียบไปด้านช้ายหาค่าที่สูงกว่า หากไปด้าขวาหาค่าทีตำกว่าส่วนกลาง เมือเจอแล้วให้หยุดแล้วสหลับที่ค่าด้านช้ายกับด้านขวาทำแบบนี้ไปจนกว่าข้อมูลจะจัดเรียงกัน6. การจัดเรียงแบบฮีป หรือ Heap sortHeap Sort หรือบางครั้งเรียกว่า Tree Sort จะอาศัยโครงสร้างข้อมูลแบบ Binary Tree แต่การแตกกิ่งก้านของโหนดในต้นไม้จะต้องอยู่ภายใต้เงื่อนไขต่อไปนี้
ขั้นตอนในการเรียงลำดับข้อมูลด้วยวิธีดังต่อไปนี้
เนื่องจากโครงสร้างข้อมูลแบบฮิปมีความสะหลับสับซอนจึงยากต่อการอธิบายเป็นรูปภาพจึงขอแนะนำให้ไปดูเป็นแบบวีดีโอ โดยแอดมิน ได้เลือกวีดีโอที่คิดว่าหากทุกคนได้ไปศึกษาดูจะเข้าใจได้มากที่สุด โดยในวีดีโอจะให้ข้อมูลมาคือ 11 6 4 1 3 7 8 12 โดยวางข้อมูลไวในไบรนารีทรี แล้วเปียนข้อมูลให้เป็น ( tree sort ) กอน แล้วจืงเรีมจัดการบ้อมูลให้มาเรียงรำดับแบบ ฮีป หากนำข้อมูลที่ถูกจัดเรียงแล้วนั้นออกไปอาจทำให้ tree นั้นหลุดออกจากการเป็น tree sort ก็จะเปลียน tree นั้นให้กลับมาเป็น tree sort เสยกอนแล้วค่อยเรียงรำดับข้อมูลตัวตอไปทำแบบนี้ไปเรียๆ จนข้อมูลเรียงอยู่ในตำแหน่งที่เหมาะสม
|