วันพุธ, ตุลาคม 14, 2552

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

สรุปสิ่งที่ได้รับจากการเรียนเตรียมฝึก

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

สิ่งที่ข้าพเจ้าได้รับจากการเรียนเตรียมฝึกมีดังต่อไปนี้

1. มีระเบียบวินัย คือ มีระเบียบวินัยทางด้านการแต่งกายที่ดีขึ้นเหมาะสมถูกต้องตามระเบียบ

2.การตรงต่อเวลา คือ ทำให้เรารู้จักรักษาเวลามากยิ่งขึ้นเพราะเวลาเป็นพื้นฐานที่ดีของชีวิต

3.ความรู้ความเข้าใจ คือ มีความรู้ความเข้าใจในด้านการทำงานต่าง ๆ

4.การวางตัว คือ การวางตัวในสังคมว่าควรวางตัวอย่างไรไม่ให้น่าเกลียด

5.รู้หลักสัจธรรม คือ ทำให้เรารู้ว่าทำดีได้ดี ทำชั่วได้ชั่ว ปลูกสิ่งใดย่อมได้สิ่งนั้น

6.สามารถนำไปใช้ได้จริงในการทำงาน คือ เมื่อจบไปแล้วสามารถนำความรู้ที่เรียนผ่านมาเอาไปใช้ได้จริง

7.ความเหมาะสม คือ ทำให้ทราบและรู้ถึงความเหมาะสมของงานต่าง ๆ ที่เราจะได้รับได้ทำเพื่อให้ออกมาดี

8.การใช้ภาษาที่ดี คือ การใช้ภาษาที่ถูกต้องทาง สระ วรรณยุกต์และคำรวมถึงการใช้ภาษาต่างประเทศด้วย

9.พื้นฐานชีวิต คือ เพราะการเล่าเรียนเปรียบเสมือนพื้นฐานของชีวิตการเรียนเตรียมฝึกก็เช่นกันจะทำให้เรามี
พื้นฐานในการทำงานได้ในอนาคต

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

วันเสาร์, กันยายน 19, 2552

DTS 11 09-09-52

สรุป (Sorting )

วิธีการเรียงลำดับสามารถแบ่งออกเป็น 2 ประเภทดังนี้

1.การเรียงลำดับแบบภายใน (internal sorting)เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก ในการเรียงลำดับจะคำนึงถึงเวลาที่ใช้ในการเปรียบเทียบและข้อมูลความจำหลัก

2.การเรียงลำดับแบบภายนอก(external sorting) เป็นการเรียงลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง ซึ่งเป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file)
เวลาที่ใช้ในการเรียงลำดับต้องคำนึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูลจากหน่วยความจำหลักและหน่วยความจำสำรองนอกเหนือจากเวลาที่ใช้ในการเรียงลำดับแบบภายในการเรียงลำดับแบบเลือก

(selection sort)คือจะทำการเลือกข้อมูลในแต่ละรอบแบบเรียงลำดับเป็นต้นการจัดเรียงลำดับแบบเลือกเป็นวิธีที่ง่ายและตรงไปตรงมา แต่มีข้อเสียตรงที่ใช้เวลาในการจัดเรียงนานเพราะแต่ละรอบต้องเปรียบเทียบกับข้อมูลทุกตัว ถ้ามีจำนวนข้อมูลทั้งหมด n ตัว ต้องทำการเปรียบเทียบทั้งหมดn – 1 รอบ และจำนวนครั้งของการเปรียบเทียบในแต่ละรอบเป็นดังนี้รอบที่ 1 เปรียบเทียบเท่ากับ n −1 ครั้งรอบที่ 2 เปรียบเทียบเท่ากับ n – 2 ครั้ง...รอบที่ n – 1 เปรียบเทียบเท่ากับ 1 ครั้งการเรียงลำดับแบบฟอง (Bubble Sort)เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่อยู่ติดกัน
1. ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับตำแหน่งที่อยู่กัน
2. ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้นำข้อมูลตัวที่มีค่าน้อยกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก
การเรียงลำดับแบบเร็ว (quick sort)เป็นวิธีการเรียงลำดับที่ใช้เวลาน้อยเหมาะสำหรับข้อมูลที่มีจำนวนมากที่ต้องการความรวดเร็วในการทำงาน วิธีนี้จะเลือกข้อมูลจากกลุ่มข้อมูลขึ้นมาหนึ่งค่าเป็นค่าหลัก แล้วหาตำแหน่งที่ถูกต้องให้กับค่าหลักนี้
การเรียงลำดับแบบแทรก (insertion sort)เป็นวิธีการเรียงลำดับที่ทำการเพิ่มสมาชิกใหม่เข้าไปในเซต ที่มีสมาชิกทุกตัวเรียงลำดับอยู่แล้ว และทำให้เซตใหม่ที่ได้นี้มีสมาชิกทุกตัวเรียงลำดับด้วย วิธีการเรียงลำดับจะ1. เริ่มต้นเปรียบเทียบจากข้อมูลในตำแหน่งที่ 1 กับ 2หรือข้อมูลในตำแหน่งสุดท้ายและรองสุดท้ายก็ได้ถ้าเป็นการเรียงลำดับจากน้อยไปมาก2. จะต้องจัดให้ข้อมูลที่มีค่าน้อยอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก เช่น สมมุติข้อมูล 12 ตัว35 67 58 47 22 99 82 43 11 40 29 55
รอบที่หนึ่งเราจะพิจารณาในหลักหน่วย
กลุ่ม8 58
กลุ่ม 7 67 47
กลุ่ม 6
กลุ่ม 5 35 55
กลุ่ม 4
กลุ่ม 3 43
กลุ่ม 2 22 82
กลุ่ม1 11
กลุ่ม0 40 เป็นต้น
รอบที่สองเราจะพิจารณาในหลักสิบเช่น 40 11 22 82 43 35 55 67 47 58 99 29
กล่ม 0
กลุ่ม 9 99
กลุ่ม 8 82
กลุ่ม 7
กลุ่ม 6 67
กลุ่ม 5 55 58
กลุ่ม 4 40 43 47
กลุ่ม 3 35
กลุ่ม 2 22 29
กลุ่ม 1 11 เป็นต้น
ในรอบที่ 2 เมื่อทำการจัดกลุ่มเรียบร้อยแล้วให้รวบรวมข้อมูลในทุกกลุ่มเริ่มจากข้อมูลในกลุ่ม 0จนถึงกลุ่ม 9 ได้ข้อมูลเรียงตามลำดับดังนี้11 22 29 35 40 43 47 55 58 67 82 99

วันอังคาร, กันยายน 15, 2552

DTS 10 08-09-52

สรุป (Tree )ต่อ

การท่องไปในไบนารีทรี
การท่องไปในไบนารีทรี (Traversing Binary Tree) เพื่อเข้าไปเยือนทุก ๆโหนดในทรี ซึ่งวิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้งวิธีการท่องไปนั้นมีด้วยกันหลายแบบแล้วแต่ว่าต้องการลำดับแบบใด
มีวิธีการท่องเข้าไปในทรี 6 วิธี คือ NLRLNR LRN NRL RNL และ RLN แต่วิธีการท่องเข้าไปไบนารีทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรกเท่านั้นคือ NLR LNR และ LRN ซึ่งลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ(Recursive)
1. การท่องไปแบบพรีออร์เดอร์(Preorder Traversal)เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธีNLR มีขั้นตอนการเดินดังต่อไปนี้
(1) เยือนโหนดราก
(2) ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
(3) ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์

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

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

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

DTS 09 08-09-52

สรุปเรื่อง (TREE)


Treeคือจะมีลักษณะแบบเครือข่ายของต้นไม้ หรืออีกความหมายหนึ่งคือ ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น (Hierarchical Relationship)ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูลเช่น แผนผังองค์ประกอบของหน่วยงานต่าง ๆ


เช่นดังภาพลักษณะต่อไปนี้



ทรีแบ่งออกเป็น 2 ชนิดคือ

1.ทรีทั่วไป จะเป็นการเก็บข้อมูลของเซตหรือจำนวนของโหนดในจำนวนนั้น ๆ

2.ไบนารีทรี จะมีค่าโหนดทรีเป็น 0 และแต่ละโหนดสามารถมีโหนดย่อยได้ไม่เกิน 2 โหนดและกำหนดเรียกชื่อทรีย่อยทางด้านซ้ายว่า left subtree และทรีย่อยได้ขวาว่า right subtree


วันจันทร์, กันยายน 07, 2552

DTS 08 03-09-52


สรุป Graph


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






กราฟแบบไม่มีทิศทางมีชื่อโหนดและเอ็จ

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

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

การท่องเที่ยวในกราฟมี 2 แบบดังนี้คือ

การท่องแบบกว้าง (Breadth First Traversal)วิธีนี้ทำโดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นทีละระดับจนกระทั่งเยือนหมดทุกโหมดในกราฟ

การท่องแบบลึก (Depth First Traversal)การทำงานคล้ายกับการท่องทีละระดับของทรี โดยกำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตามแนววิถีนั้นจนกระทั่งนำไปสู่ปลายวิถีนั้น จากนั้นย้อนกลับ (backtrack) ตามแนววิถีเดิม

วันอาทิตย์, กันยายน 06, 2552

DTS 07 03-09-52

ต่อ เรื่อง Tree

ไบนารีเซิร์ชทรี(Binary Search Tree)ค่าโหนดรากที่มีค่ามากกว่าค่าของทุกโหนดในทรีย่อยทาซ้ายและมีค่าน้อยกว่าหรือเทียบเท่ากับค่าของุกโหนดในทรีย่อยทางขวาและแต่ละทรีย่อยมีคุณสมบัติเช่นเดียวกันแบบไบนารีตัวเลข เช่น 60,20,70,75,50,40,10,90,7,55



(Expression Tree)

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

วันอาทิตย์, สิงหาคม 30, 2552

DTS 06 26-08-52

สรุป เรื่อง (Tree )

tree เป็นส่วนหนึ่งของกราฟเป็นโครงสรางข้อมูลที่มีความสัมพันธ์ระหว่างโหนดแบบลำดับชั้น (Hierarchi calreltionship)
สำหรับในการประยุกต์ใช้ สามารถนำไปใช้ได้ในงานต่าง ๆ เช่น แผนผังแสดงความสัมพันธ์ของโหนดต่าง ๆ องค์ประกอบหรือหน่วยงานโครงสรางสารบัญหนังสือ เป็นต้น
ลักษณะของโหนดจะประกอบไปด้วยดังต่อไปนี้คือ
โหนดแม่ parent or mother node
โหนดลูก child or son node
โหนดราก root node
โหนดพี่น้อง siblings node
โหนดใบ leave node
เส้นแสดงความสัมพันธ์ระหว่างโหนดเรียกว่า กิ่ง (Branch)
ทรีเป็นกราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop)
นิยามทรีเป็นรีเคอร์ซีฟทรีประกอบด้วยสมาชิกที่เรียกว่าโหนด ถ้ากรณีว่างเรียกว่าไม่มีโหนดหรือ นัลทรี (null tree)ทรีย่อย(sub tree)

ตัวอย่างของโหนดแบบเครือข่ายต้นไม้

Root Node คือ โหนด A หรือโหนดแม่

Child Node หรือ โหนดลูก จากรูป B , C , D และ E เป็น โหนดลูกของ A

Parent Node หรือโหนดพ่อแม่ โหนด B ที่เป็นโหนดลูกของโหนด A ก็สามารถแตกออกเป็นโหนดย่อยๆ ได้แก่ F และ G ดังนั้น B จึงเป็นโหนดพ่อแม่ของ F และ G ในทำนองเดียวกัน A ก็เป็นโหนด พ่อแม่ของ B , C , D และ Eกิ่ง (Branch or Edge) เป็นเส้นที่เชื่อมต่อระหว่างโหนดพ่อแม่กับโหนดลูก

Brother Node หรือโหนดพี่น้อง คือ โหนดที่มีพ่อแม่เดียวกัน เช่น B , C , D , E เป็นโหนดพี่น้องกันเพราะมีโหนดพ่อแม่เดียวกัน คือ โหนด A และ F และ G เป็นโหนดพี่น้องกันโดยมี B เป็นโหนดพ่อแม่

Leaf Node คือ โหนดที่ไม่มีโหนดลูก จากรูปโหนดที่ไม่มีโหนดลูก ได้แก่ F G H I J K L M

Branch Node คือ โหนดที่ไม่ใช่ Leaf Node เช่น โหนด B C D E เรียกว่า Branch Node

Degree คือ จำนวนลูกของโหนด x เช่น degree ของ โหนด A = 4 ได้แก่ B C D E จำนวน degree ของโหนด B = 2 จำนวนdegree ของโหนด F = 0 เนื่องจากโหนด F ไม่มีโหนดลูก

Direct Descendant Node คือโหนดที่มาทีหลังทันที จากรูป B C D E เป็น direct descendant node ของโหนด A เพราะเป็นโหนดที่มาทีหลังทันที

Descendant Node คือ โหนดลูกของโหนด x และโหนดที่ทุกโหนดที่แตกจากโหนดลูกของโหนด x ตัวอย่าง descendant ของโหนด A คือ ทุกโหนดที่เหลือในทรี
Direct Ancestor Node หรือโหนดที่มาก่อนทันที ตัวอย่าง Direct Ancestor ของโหนด H คือ โหนด C , Direct Ancestor ของโหนด C คือ โหนด ALevel หรือระดับ คือ หมายเลขแสดงระดับของโหนดในทรี ซึ่งรูทโหนดจะมีค่า
tree มีวิธีการท่องเข้าไปในทรี 6 วิธี คือ NLR,LNR,LRN,NRL,RNL,RLN
และวิธีเข้าจากซ้ายไปขวามี 3 แบบ คือ NLR,LNR,LRN ลักษณะนี้จะเป็นนิยามแบบ รีเดอร์ซีฟ
การแปลงทรีทั่วไปให้เป็นไบนารีทรี มี 3 ขั้นตอนคือ
1.ให้โหนดแม่ชี้ไปยังโหนดลูกคนโตแล้วลบความสัมพันธ์ระหว่างโหนแม่และโหนดลูกอื่น ๆ
2.ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง
3.จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา
(Expression Tree)คือ การนำโครงสร้างtreeไปเก็บไว้ในนิพจน์ทางคณิตศาสตร์โดยเป็นไบนารีทรีโดยแต่ละโหนดจะเก็บตัวดำเนินการ(Opreator)และตัวดำเนินการ(Operrand)ของนิพจน์คณิตศาสตร์นั้น ๆ
(Binary Search Tree)ค่าโหนดรากที่มีค่ามากกว่าค่าของทุกโหนดในทรีย่อยทางซ้ายและค่าน้อยกว่าหรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวาและแต่ละทรีย่อยจะมีคุณสมบัติเช่นเดี่ยวกันในแบบไบนารีตัวเลขเป็นต้น