วันพุธที่ 14 ตุลาคม พ.ศ. 2552

DTS10-09-09-2552

SORTING

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

การเรียลำดับอย่างมีประสิทธิภาพต้องคำนึงถึง

- เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
- เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงาน
- จำนวนเนื้อที่ในหน่วยความจำ

วิธีการเรียงลำดับ

วิธีการเรียงลำดับสามารถแบ่งออกได้ 2 วิธี
1.การเรียงลำดับแบบภายใน เป็นการเรียงลำดับข้อมูลที่อยู่ในหน่วยความจำหลัก เวลาที่ใช้จะคำนึงถึงเวลาที่ใช้เปรียบเทียบและเลื่อนข้อมูล
2.การ เรียงลำดับแบบภายนอก เป็นการเรียงลำดับข้อมูลที่อยู่ในหน่วยความจำสำรอง เวลาที่ใช้จะคำนึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูล

การเรียงลำดับแบบเลือก

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

1. ในรอบแรกจะทำการค้นหาข้อมูลตัวที่มค่าน้อยที่สุดมาเก็บ
ไว้ที่ตำแหน่งที่ 1
2. ในรอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่
ตำแหน่งที่สอง
3. ทำเช่นนี้ไปเรื่อย ๆ จนกระทงครบทุกคำ
ในที่สุดจะได้ข้อมูลเรียงลำดับจากน้อยไปมากตามที่ต้องการ



การเรียงลำดับแบบฟอง

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


การเรียงลำดับแบบเร็ว

เป็น วิธีที่ใช้เวลาน้อย เหมาะกับข้อมูลที่มีจำนวนมาก โดยจะเลือกข้อมูลมาหนึ่งค่ามาเป็นค่าหลัก ถ้าเป็นการเรียงจากค่าน้อยไปหาค่ามาก แล้วให้ตำแหน่งที่ 1 เป็นค่าหลัก ทำการเปรียบเทียบจากตำแหน่งท้ายไปเรื่อยๆ จนเจอค่าที่น้อยกว่าค่าหลัก แล้วทำการสลับตำแหน่งกัน หลังจากสลับตำแหน่งให้นำค่าหลักเปรียบเทียบกับข้อมูลตำแหน่งที่ 2,3 จนพบข้อมูลที่มีค่ามากกว่าค่าหลักแล้วทำการสลับตำแหน่งกัน ทำลักษณะนี้เรื่อยๆจนข้อมูลเรียงถูกต้อง

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


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

เป็น วิธีที่พิจารณาเลขที่ละหลัก โดยจะพิจารณาเลขหลักหน่วยก่อน แล้วทำการจัดเรียงข้อมูลทีละตัวตามกลุ่มหมายเลข จากนั้นนำข้อมูลที่จัดเรียงในหลักหน่วยมาจัดเรียงในหลักสิยต่อไปเรื่อยๆจน ครบทุกหลัก ก็จะได้ข้อมูลที่ต้องการ การเรียงลำดับแบบฐานไม่ซับซ้อน แต่ใช้เนื้อที่ในหน่วยความจำมาก

ไม่มีความคิดเห็น:

แสดงความคิดเห็น