บทความ

กำลังแสดงโพสต์จาก 2017

การจัดเรียงข้อมูล Sorting

Sorting ความสำคัญของการจัดเรียงข้อมูล การจัดเรียงข้อมูล เป็นการจัดการข้อมูลที่กระทำกันมากในงานประยุกต์ต่างๆ เช่น การนำข้อมูลนักศึกษามาจัดเรียงตามลำดับรหัสนักศึกษา เพื่อนำไปใช้ในการพิมพ์ใบเซ็นชื่อเข้าสอบ หรือการเรียงข้อมูลพนักงานตามรหัสพนักงานเพื่อใช้ในการพิมพ์ การจัดเรียงข้อมูลแบบแทรกใส่ (Insertion Sort) เทคนิคมาจากลักษณะการจัดไพ่ในมือของผู้เล่น คือ เมื่อผู้เล่นได้ไพ่ใบใหม่เพิ่มขึ้นมา จะนำไพ่ใบนั้นไปแทรกในตำแหน่งที่เหมาะสม ทำให้ไพ่ในมือบางส่วนต้องขยับตำแหน่งออกไป ซึ่งการจัดเรียงลำดับข้อมูลแบบแทรกนี้จะเริ่มพิจารณาคีย์ในตำแหน่งที่ 2 เป็นต้นไป หลักการ คือ จะอ่านข้อมูลไปทีล่ะตัว แล้วนำไปแทรกลงในตำแหน่งที่เหมาะสมบนข้อมูลใหม่ที่เตรียมไว้มีขั้นตอนดังนี้         สร้างแถวข้อมูลมาใหม่ที่มีขนาดเท่ากับจำนวนข้อมูลที่ต้องการจัดเรียง         อ่านข้อมูลแรกแล้วใส่ลงในตำแหน่งแทรกในแถวข้อมูลใหม่         อ่านข้อมูลถัดไปมา 1 ตัว แล้วเปรียบเทียบกับข้อมูลใหม่ทีล่ะตัว ตั้งแต่ตัวแรกไปจนถึงตัวสุดท้าย เพื่อหาตำแหน่งที่เหมาะสมในแถวข้อมูลใหม่         ทำซ้ำขั้นตอนที่ 3 จนครบทั้งชุดข้อมูล

Linked-List

Linked-List Linked-List หมายถึง จากการทำงานของโครงสร้างข้อมูล อาร์เรย์ ( Array Structure) , โครงสร้างข้อมูล สแตก ( Stack Structure) และโครงสร้างข้อมูล คิว ( Queue Structure) มีลักษณะการจัดเก็บข้อมูลและการเข้าถึงข้อมูลในโครงสร้างแบบลำดับเป็นพื้นที่ต่อเนื่องกัน  การใช้งานของโครงสร้างถูกจำกัดไว้ไม่สามารถทำการปรับเปลี่ยนหรือแก้ไขขนาดของโครงสร้างได้ หรือหากต้องการปรับเปลี่ยนโครงสร้างใหม่ จะทำให้เสียเวลาในการประมวลผล ปัญหาของตัวแปร ตัวแปรแบบ Array มีการจองเนื้อที่ที่อยู่ติดกันตามจำนวนที่ต้องการไว้ก่อน เช่น ถ้าต้องการจัดเก็บข้อมูลจำนวน 10,000 ค่า แต่ละค่าใช้เนื้อที่ 2 byte เนื้อที่ทั้งหมดที่ถูกจองจะเป็น 20,000 byte ซึ่งบางครั้งอาจจะไม่มีเนื้อที่ว่างที่อยู่ติดกันเพียงพอสำหรับเก็บข้อมูล 20,000 byte ทำให้โปรแกรมไม่สามารถทำงานได้   บางกรณีจองเนื้อที่ไว้สำหรับเก็บข้อมูล 10,000 ค่า เนื่องจากไม่ทราบจำนวนข้อมูลที่ต้องการเก็บ แต่เมื่อใช้งานจริง เก็บข้อมูลเพียง 2,000 ค่า ทำให้เหลือเนื้อที่ที่ยังไม่ได้ใช้ แต่ไม่สามารถนำไปใช้งานอื่นได้ กรณีจองเนื้อที่ไว้สำหรับเก็บข้อมูล 10,000 ค่า แต่การ

Tree

รูปภาพ
Tree ทรี  หมายถึงโครงสร้างที่มีความสำพันธ์ในลักษณะลำดับชั้น ชมาชิกแต่ล่ะโหนดล้วนมีความสำพันธ์กันในลักษณะเหมือนครอบครัวเดี่ยวกันโดยมีโหนดพ่อซึ่งอยู่ระดับเหนือกว่ามีเส้นเซื่ยมโยงจากโหนดพ่อไปอย่างโหนดที่อยู่ในระดับต่ำมากกว่าที่เรียกว่าโหนดลูก องค์ประกอบของทรีประกอบด้วย   โหนดราก ( Root Node) คือโหนด A ซึ่งโหนดรากหรือรูทโหนดถือเป็นโหนดแรกสำรับโครงสร้างทรีเป็นโหนดเริ่มต้นเพื่อขยายลูกหลานต่อไป โหนดพ่อ ( Parents) คือโหนด A,B และ F ก็คือโหนดที่มี Successor โหนดลูก ( Children) B,E,F,C,D,G,H และ I ซึ่งก็คือโหนดที่มี Predecessor โหนดพี่น้อง ( Siblings) คือโหนด {B,E,F},{C,D} และ {G,H,I} โหนดใบ ( Leaf Node) คือโหนด C,D,E,G,H และ I ซึ่งก็คือโหนดที่ไม่มี Successor ดีกรี ( Degree) ทั้งหมดของทรี มีค่าเท่ากับ 8 ดีกรี ( Degree) ทั้งหมดของโหนด F มีค่าเท่ากับ 3 จำนวนของ Leaf  โหนด มีค่าเท่ากับ 6 ระดับความสูงหรือความลึกของทรี             -คำนวนได้จากสูตร Height = 2+1+3 ซับทรี (Subtree)             Subtree หมายถึง โครงสร้างที่เชื่อมต่อกันภายใต้ Root โดย Node แรกขอ

กราฟ(Graph)

รูปภาพ
กราฟ (Graph) กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อน เช่น วางข่ายงานคอมพิอเตอร์วิเคระห์เส็นทางวิกฤติ และปัญหาเส้นทางที่สั้นที่สุด เป็นต้น             นิยามกราฟ ·        กราฟเป็นโครงสร้างที่นำมาใช้เพื่อแสดงความสำพันธ์ระหว่างวัตถุ โดยแทน วัตถุด้วยเวอร์เท็กซ์ ( Vertex) หรือโหนด ( Node) และเซื่อมโยง ความสำพันธ์ด้วยเอดจ์ ( Edge)  ·        เขียนในรูปของลักษณ์ได้เป็น G=(V,E) ·        V(G)  คือ เซตของเวอร์เท็กซ์  ที่ไม่ใช้เซ็ตต่างๆ และมีจำนวนจำกัด ·        E(G) คือ เซตของเอดจ์ ซึ่งเขียนด้วยคู่ของเวอร์เท็กร์ ศัพท์ที่เกี่ยวข้อง 1.             เวอร์เทกซ์  ( Vertex)     หมายถึง   โหนด 2.             เอดจ์  ( Edge)                หมายถึง    เส้นเชื่อมของโหนด 3.             ดีกรี  ( Degree)             หมายถึง    จำนวนเส้นเข้าและเส้นออก ของโหนดแต่ละโหนด 4.             แอดจจาเซนท์โหนด  ( Adjacent Node)      หมายถึง    โหนดที่มีการเซื่อมโยงกัน อินดีกรีและเอาท์ดีกรี ·        แต่ละโหนดจะมี จำนวนเส้น เซื