วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2552

ลูกแรดเตรียมพร้อมล่าเหยื่อ

สิ่งที่ได้รับจากการฝึกประสบการณ์วิชาชีพ3
1.มีความเป็นระเบียบเรียบร้อย
2.มีความเป็นระบบมากขึ้น
3.มีความรับผิดชอบมากขึ้น
4.ได้เรียนรู้ในการทำงานเป็นทีม
5.มีความตรงต่อเวลามากขึ้น

วันเสาร์ที่ 3 ตุลาคม พ.ศ. 2552

DTS11-15/09/2552

สรุป 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)

DTS10-08/09/2552

สรุป กราฟ (Graph) ต่อ
การท่องไปในกราฟ (Graph traversal) คือ การเข้าไปเยือนโหนดในกราฟ
หลักการทำงาน คือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียว
เทคนิคการท่องไปในกราฟมี 2 แบบ
1.การท่องแบบกว้าง (Breadth First Traversal) โดยเลือกโหนดที่เป็นจุดเริ่มต้น
ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นที่ละระดับ
จนเยือนหมดทุกโหนดในกราฟ (แบบคิว)
2.การท่องแบบลึก (Depth First Traversal) คล้ายกับการท่องทีละระดับของทรี
กำหนดเริ่มต้นที่โหนดแรกและเยือน
สรุป Sorting
การเรียงลำดับ (sorting) เป็นการจัดให้เป็นระเบียบ มีแบบแผน
ช่วยให้การค้นหาสิ่งของหรือข้อมูล สามารถทำได้รวดเร็วและมีประสิทธิภาพ
การเรียงลำดับอย่างมีประสิทธิภาพ
หลักเกณฑ์ในการพิจารณาเพื่อเลือกวิธีการเรียงลำดับ
ที่ดีและเหมาะสมกับระบบงาน
1.เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
2.เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
3.จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่
วิธีการเรียงลำดับแบ่งออกเป็น 2 ประเภท
1.การเรียงลำดับภายใน (internal sorting) เป็นการเรียงลำดับที่ข้อมูลทั้งหมด
ต้องอยู่ในหน่วยความจำหลัก
2.การเรียงลำดับแบบภายนอก (external sorting) เป็นการเรียนลำดับข้อมูลที่
เก็บอยู่ในหน่วยความจำสำรอง เป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file)
การเรียงลำดับแบบเลือก (selection sort)
ข้อมูลจะอยู่ทีละตัว โดยทำการค้นหาข้อมูลในแต่ละรอบแบบเรียงลำดับ
ถ้าเป็นการเรียงลำดับจากน้อยไปมาก
1.ในรอบแรกจะทำการค้นหาข้อมูลตัวที่มีค่าน้อยที่สุดมาเก็บไว้ที่ตำแหน่งที่ 1
2.ในรอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่ตำแหน่งที่ 2
3.ทำแบบนี้ไปเรื่อยๆ จนครบทุกค่า ในที่สุดจะได้ข้อมูลเรียงลำดับจากน้อย
ไปมากตามที่ต้องการ
การจัดเรียงลำดับแบบเลือกเป็นวิธีที่ง่ายและตรงไปตรงมา แต่มีข้อเสียตรงที่ใช้เวลา
ในการจัดเรียงนาน เพราะแต่ละรอบต้องเปรียบเอียบกับข้อมูลทุกตัว
การเรียงลำดับแบบฟอง (Bubble Sort)
เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่อยู่ติดกัน
1.ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับตำแหน่งที่อยู่กัน
2.ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้นำข้อมูลตัวที่มีค่าน้อยกว่าอยู่ใน
ตำแหน่งก่อนข้อมูลที่มีค่ามาก ถ้าเป็นการเรียงลำดับจากมากไปน้อยให้นำ
ข้อมูล ตัวที่มีค่ามากกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่าน้อย
การจัดเรียงลำดับแบบฟองเป็นวิธีที่ไม่ซับซ้อนมาก เป็นวิธีการเรียงลำดับที่นิยม
ใช้กันมากเพราะมีรูปแบบที่เข้าใจง่าย