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

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

สิ่งที่ได้รับจากการฝึกประสบการณ์วิชาชีพ 3

1.ได้รู้ถึงการทำตนเองให้มีความเรียบร้อย แต่งกายเรียบร้อย
เพื่อที่จะให้เกิดความเคยชินในการออกไปฝึกงาน การเรียนวิชาฝึกประสบการณ์วิชาชีพ 3 นี้ทำให้เรารู้จักการปฎิบัติตนสุภาพเรียบร้อย แต่งกายเรียบร้อยถูกกาละเทศะ ให้บุคลิกภาพของตนเองดูดี

2.ได้รับรู้ความรู้ใหม่ๆ หลายๆด้าน
การเรียนวิชาเตรียมฝึกประสบการณ์วิชาชีพ 3 นี้ ทำให้เราได้เรียนรู้วิชาต่างๆที่ไม่มีในเนื้อหา ได้เรียนรู้สิ่งต่างๆที่สามารถนำไปใช้ในการที่เราจะต้องไปฝึกงานในสถานที่จริง

3.ได้เรียนรวมกับเพื่อนต่างห้อง ต่างคณะ
การเรียนรวมกับเพื่อนต่างห้อง ต่างคณะ ได้ทำให้เราเกิดความสามัคคี ได้พึ่งพาอาศัยกัน คอยช่วยเหลือกัน
ไม่มีการแบ่งแยกกันระหว่างห้อง ระหว่างคณะ

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

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

DTS 11-16-09-2552

สรุปเรื่อง searching

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

DTS 10-09-09-2552

สรุปเรื่อง กราฟ (ต่อ) และ Sorting

การท่องไปในกราฟอัลกอริทึ่มแบบลึกมีดังนี้
1. push โหนดเริ่มต้นไปเก็บในสแตก และปรับ Top
ให้ชี้ที่ตำแหน่งจุดเริ่มต้น
2.pop สมาชิกใหม่ออกจากสแตก 1 จำนวน
ปรับค่า pop ใหม่ดังนี้ top=top-1
3.push โหนดประชิดทั้งหมด ของโหนดที่ pop ครั้งสุดท้าย
ลงสแตกกำหนดโหนดที่จะ push นั้นต้องไม่เคย push ลงในสแตกมาก่อน
และปรับค่า top ใหม่ดังนี้
top=top+จำนวนโหนดประชิดที่ push ลงในสแตก
4.ตรวจสอลข้อมูลถ้ามีให้ไปทำที่ ข้อ 2
5.จบการทำงาน

การท่องไปในกราฟอัลกิริทึ่มแบบกว้าง มีดังนี้
1.นำโหนดเริ่มต้นไปเก็บในคิว และปรับค่า Front และ rear=1
2.นำสมาชิกออกจากคิว 1 จำนวน และปรับค่า
Front ใหม่ดังนี้ front=front+1
3.นำโหนดประชิดของโหนดทั้งหมดที่ตำแหน่ง front ไปเก้บในคิว
โดยโหนดที่จะเข้าคิวนั้นจะต้องไปเคยเก็บไว้ในคิวมาก่อน
และปรับค่า rear ใหม่ดังนี้ rear=rear+1
4.ตรวจสอบคิวถ้ามีข้อมูลให้ไปทำ ข้อ 2
5. จบการทำงาน

กราฟมีน้ำหนักหมายถึง กราฟที่ทุกเอจมีค่าน้ำหนักกำกับ
นิยมนำไปใช้แก้ปัญหา 2 ปัญหา หลักๆ คือ
1.การสร้างต้นไม้ทอดข้ามน้อยที่สุด
2.การหาเส้นทางที่สั้นที่สุด

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

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

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

DTS 09-02-09-2552

สรุปเรื่องทรี (ต่อ) และเรื่อง กราฟ

การท่องเข้าไปในไบนารีทรี
ปฏิบิตการที่สำคัญของไบนารีทรี คือ
การท่องเข้สไปในไบนารีทรีเพื่อนเยือนทุกโหนดในทรี
ขั้นตอนการเยือนของโหนดที่ถูกเยือนอาจเป็น
โหนดแม่ แทนด้วย N
ทรีย่อยทางซ้าน แทนด้วย L
ทรีย่อยทางขวา แทนด้วย R

เอ็กเพรสชั่นทรี (Expression Tree )
เป็นการนำเอาโครงสร้างทรีไปใช้กับนิพจน์
โดยแต่ละโหนดจะเก็บตัวดำเนินการ (Operator )
และตัวถูกดำเนินการ ( Operand )
ส่วนตัวถูกดำเนินการจะ๔กเก็บอยู่ที่โหนดใบ
ส่วนตัวดำเนินการจะถูกเก็บอยู่ที่โหนดกิ่ง
แต่ต้องคำนึงถึงความสำคัญของลำดับเครื่องหมายด้วย คือ
-ฟังก์ชั่น
-วงเล็บ
-เลขยกกำลัง
-เครื่องหมายหน้าเลขจำนวน
-คูร หรือหาร
-บวก หรือ ลบ
**ถ้ามีเครื่องหมายที่มีระดับเดียวกันให้ทำจากซ้ายไปขวา

ไบนารีเสริททรี ( Binary Searh Tree )
เป็นไบนารีที่มีคุณสมบัติที่ว่าทุกๆโหนดในทรี
ค่าของโหนดรากมีค่ามากกว่าทุกๆโหนดในทรีย่อยทางซ้าย
และมีค่าน้อยกว่าหรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวา
และในแต่ละทรีย่อยก็มีคุณสมบัติเช่นเดียวกัน

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

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

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

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

การท่องไปในกราฟ เป้นการเยือนโหนดในกราฟ ซึ่งแต่ละโหนด
จะถูกเยือนเพียงครั้งเดียว แต่กราฟนั้นมาหลายเส้นทาง
เมื่อเยือนแล้วจะต้องทำเครื่องหมายว่าได้เยือนแล้ว
การท่องไปในกราฟมีด้วยกัน 2 แบบ คือ
1.การท่องแบบกว้าง เป้นการกำหนดโหนดที่จะเยือน
หรือโหนดเริ่มต้นแล้วทำการเยือนไปยังโหนดที่ใกล้เคียงจนกระทั่งครบทุกดหนด
2.การท่องแบบลึก โดยกำหนดที่โหนดแรกแล้ว
เยือนโหนดถัดไปตามแนววิถีจนถึงปลายวิถีแล้วย้อนกลับ
มาเพื่อเยือนโหนดต่อไปจนครบทุกๆโหนด







วันจันทร์ที่ 12 ตุลาคม พ.ศ. 2552

DTS 08-26-08-2552

สรุปเรื่อง "ทรี"

ทรี หรือที่เรียกอีกอย่างหนึ่งว่าโครงสร้างต้นไม้
เป็นอีกโครงสร้างที่มีความสัมพันธ์กัน
จะประกอบไปด้วยโหนด ( Node )
แต่ละโหนดจะมีความสัมพันธ์กัน
และยังสามารถแตกโหนดออกมาเป็นโหนดย่อยๆ
ได้อีกหลายโหนดด้วยกันเรียกว่า "โหนดลูก"
เมื่อเรามีโหนดลูกแล้วก็ยังสามารถ
แตกออกไปเป็นโหนดพ่อ โหนดแม่ได้อีก

ชนิดของ "ทรี" จะแบ่งออกได้ 2 ชนิดคือ
1.ทรีทั่วไป
2.ไบนารีทรี

ในแต่ละโหนดที่มีแม่เป็นโหนดเดียวกันนั้น
เรียกว่าโหนดพี่น้อง
โหนดที่ไม่มีโหนดลูกเรียกว่าโหนดใบ
และเส้นที่แสดงความสัมพันธ์ระหว่างโหนด 2 โหนด เรียกว่า "กิ่ง"

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

ไบนารีทรีมีทั้งทรีย่อย ซ้าย เเละ ขวา ยกเว้นโหนดใบ และโหนดใบทุกโหนด
จะต้องอยู่ในระดับเดียวกันเรียกว่า ไบนารีทรีแบบสมบูรณ์

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

การท่องไปในไบนารีทรี มีด้วยกัน 3 แบบคือ
**การท่องไปแบบพรีออเดอร์
1เยือนโหนดราก
2.ท่องไปในทรีย่อยทางซ้ายแบบพรีออเดอร์
3.ท่องไปในทรีย่อยทางขวาแบบพรีออเดอร์

**การท่องแบบอินออเดอร์
1.ท่องไปในทรีย่อยทางซ้ายแบบอินออเดอร์
2.เยือนโหนดราก
3.ท่องไปในทรีย่อยทางขวาแบบอินออเดอร์

**การท่องแบบโพสต์ออร์เดอร์
1.ท่องไปในทรีย่อยทางซ้ายแบบโพสต์ออร์เดอร์
2.ท่องไปในทรย่อยทางขวาแบบโพสต์ออร์เดอร์
3.เยือนโหนดราก

DTS 08-26-08-2552

สรุปเรื่อง Tree

ทรี หรือจะเรียกกันอีกอย่างว่าโครงสร้างต้นไม้
เป็นอีกโครงสร้างที่มีความสัมพันธ์กัน
จะประกอบไปด้วยโหนด (Node)
แต่ละโหนดจะมีความสัมพันธ์กัน
และยังสามารถแตกโหนดออกมาเป็นโหนดย่อยๆ
ได้อีกหลายโหนดด้วยกันเรียกว่าโหนดลูก
เมื่อเรามีโหนดลูกแล้วก้อยังสามารถ
แตกโหนดออกไปเป็นโหนดพ่อโหนดแม่ได้อีก

ชนิดของทรี จะแบ่งออกได้2ชนิดคือ
1 ทรีทั่วไป
2 ไบนารี่ทรี

ในแต่ละโหนดที่มีโหนดแม่เป็นโหนดเดียวกันนั้น
เรียกว่า โหนดพี่น้อง (Siblings)
โหนดที่ไม่มีโหนดลูก เรียกว่า โหนดใบ
และเส้นที่แสดงความสัมพันธ์กันระหว่างโหนดสองโหนด
เรียกว่า กิ่ง

ระดับของโหนดคือ

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

ไบนารี่ทรีทุกๆโหนดมีทรีย่อยทั้งทางซ้ายและทางขวา
ยกเว้นโหนดใบ และโหนดใบทุกโหนดจะต้องอยู่ในระดับ
เดียวกัน เรียกว่า ไบนารี่ทรีแบบสมบูรณ์

การแปลงทรีในทั่วไปให้เป็นไบนารี่ทรี
มีด้วยกันอยู่3ขั้นตอนคือ

1 ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต
แล้วลบความสัมพันธ์ ระหว่างโหนดแม่
และโหนดลูกอื่นๆ
2 ให้มีความเชื่อมความสัมพันธ์กันระหว่างโหนดพี่น้อง
3 จับให้ทรีย่อยทางขวาเอียงลงมา 45องศา

การท่องไปในไบนารี่ทรีมีด้วยกัน3แบบคือ

1 การท่องไปแบบพรีออร์เดอร์
เป็นการเดินเข้าไปเยือนในโหนดต่างๆ
ในทรีด้วยวิธี NLR มีขั้นตอนการเดินดังต่อไปนี้
1 เยือนโหนดราก
2 ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
3 ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์

2 การท่องไปแบบอินออร์เดอร์
เป็นการเดินเข้าไปเยือนโหนดต่างๆ
ในทรีด้วยวิธี LNR
มีขั้นตอนการเดินดังต่อไปนี้
1 ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
2 เยือนโหนดราก
3 ท่องไปในทรีย่อยทางขวาแบบอืนออร์เดรอ์

3 การท่องไปแบบโพสต์ออร์เดอร์
เป็นการเดินเข้าไปเยือนโหนดต่างๆ
ในทรีด้วยวิธี LRN
มีขั้นตอนการเดินดังต่อไปนี้
1 ท่องไปในทรีย่อยทางซ้ายแบบโพสต์ออร์เดอร์
2 ท่องไปในทรีย่อยทางขวาแบบโพสต์ออร์เดอร์
3 เยือนโหนดราก