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

DTS 12-15/09/2009

สรุป Sorting
การเรียงลำดับแบบเร็ว (Quick sort) เป็นการเรียงลำดับที่ใช้วเลาน้อยเหมาะสำรับข้อมูลที่มีจำนวนมากที่ต้องการความรวดเร็วในการทำงาน
การเรียงลำดับแบบแทรก (insertion sort) เป็นวิธีที่ทำการเพิ่มสมาชิกใหม่เข้าไปในเซต ที่มีสมาชิกทุกตัวเรียงลำดับอยู่แล้ว และทำให้เซตใหม่
มีสมาชิกทุกตัวเรียงลำดับด้วย วิธีการเรียงลำดับ
1.เริ่มต้นเปรียบเทียบจากข้อมูลในตำแหน่งที่ 1 กับ 2 หรือข้อมูลในตำแหน่งสุดท้ายและรองสุดท้ายก็ได้
ถ้าเป็นการเรียงลำดับจากน้อยไปมาก
2.จะต้องจัดให้ข้อมูลที่มีค่าน้อยอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก และถ้าเรียงจากมากไปน้อยก็จะจัดให้ข้อมูลที่มีค่ามากอยู่ในตำแหน่งก่อน
การเรียงลำดับแบบฐาน (radix sort)เป็นการเรียงลำดับโดยการพิจารณาข้อมูลทีละหลัก
1.เริ่มพิจารณาจากหลักที่มีค่าน้อยที่สุดก่อน คือ ถ้าเป็นข้อมูลเป็นเลขจำนวนเต็มจะพิจารณาหลักหน่อยก่อน
2.การจัดเรียงจะนำข้อมูลเข้ามาทีละตัว และนำไปเก็บไว้ที่ซึ่งจัดไว้สำหรับค่านั้น เป็นกลุ่มๆ ตามลำดับการเข้ามา
3.ในแต่ละรอบเมื่อจัดกลุ่มเรียบร้อยแล้ว ให้รวบรวมข้อมูลจากทุกกลุ่มเข้าด้วยกัน โดยเริ่มเรียงจากกลุ่มที่มีค่าน้อยที่สุดก่อนแล้วเรียงไปเรื่อยๆ จนหมดทุกกลุ่ม
4.ในรอบต่อไปนำข้อมูลทั้งหมดที่ได้จัดเรียงในหลักหน่วยเรียบร้อยแล้วมาพิจารณาจัดเรียงในหลักสิบต่อไป ทำไปเรื่อยๆ จนครบทุกหลักจะได้ข้อมูลที่เรียงลำดับจากน้อยไปมากตามต้องการ
การเรียงลำดับแบบฐานมีวิธีการที่ไม่ซับซ้อนแต่ค่อนข้างใช้เนื้อที่ในหน่วยความจำมาก เนื่องจากการจัดเรียงแต่ละรอบจะต้องเตรียมเนื้อที่สำหรับสร้างที่เก็บข้อมูลในแต่ละกลุ่ม

ตารางแฮช (Hash Table)
ฟังก์ชั่น แฮช จะทำงานแบบสุ่ม การที่แทรกคีย์ในตาราง ที่จัดเก็บนั้นมีโอกาสที่คีย์ที่ถูกสร้างจากฟังก์ชั่น ในช่องเดียวกันตามการเกิดการชนกันก็ยังคงต้องมีอย่างน้อยหนึ่งครั้ง
วิธีการในการรองรับกรชนกันของตารางแฮช คือ
-การทำแบ่งห่วงโซ่ (Chaining)
-แบบการเปิดที่อยู่ (Open Addressing)
การแก้ไขปัญหาชนกันของข้อมูลแบบห่วงโซ่ (Chaining)
1.กรณีที่เลวร้ายที่สุด ในการแทรกข้อมูลคือ o(1)
2.การลบสมาชิก สามารถทำได้ด้วยเวลาที่น้อยที่สุดของ o(1)
ทางปฏิบัติ ใช้เทคนิค ฮิวริสติก (Heuristic) ในการสร้างฟังก์ชั่นแฮช แนวทางหนึ่งที่ดี คือ การแปลงค่าของข้อมูลที่มีอยู่แล้วด้วยข้อมูลที่มีอยู่ (วิธีการหาร : Division method)
วิธีการสร้างฟังก์ชั่นแฮช
1.วิธีการหาร (The Division Method)
2.วิธีการคูณ (The Multiplication Method)
3.วิธีทั่วไป (Universal hsahing)
เทคนิคลำดับการตรวจสอบ
1.การตรวจสอบเชิงเส้น (Linear Probing)
2.การตรวจสอบด้วยสมการกำลังสอง (Quadratic Probing)
3.การสร้างฟังก์ชันแฮชแบบสองเท่า (Double Hashing)

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

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