วันจันทร์ที่ 31 สิงหาคม พ.ศ. 2563

                                                                           

 2.5 การจัดเรียงและค้นหาข้อมูล

การจัดเรียงข้อมูลคือ การจัดเรียงข้อมูลเป็นสิ่งที่พบอยู่เสมอ เมื่อต้องประมวลผลข้อมูลจำนวนมาก ได้รู้เกี่ยวกับขั้นตอนพิธีพื้นฐานในก่รจัดเรียงข้อมูล (sort) และ การค้นหาข้อมูล (search)

 2.5.1) การจัดเรียงข้อมูลแบบ Bubble Sort เป็นการจัดเรียงล าดับข้อมูลประเภท Internal sorting โดยใช้การเปรียบเทียบคีย์ในต าแหน่งที่อยู่ ติดกันทีละคู่ ถ้าคีย์ที่เปรียบเทียบไม่อยู่ในต าแหน่งที่ต้องการแล้วให้ทำการสลับที่กันระหว่างข้อมูล 2 ตัวนั้น ทำ เช่นนี้จนกระทั่งเปรียบเทียบครบทุกตัว ซึ่งคือ N-1 ครั้ง ทิศทางการทำงานอาจจะทำจากคู่ซ้ายไปขวา หรือคู่ ขวาไปซ้าย หรือคู่บนลงล่าง หรือคู่ล่างขึ้นบน ก็ได้ ในแต่ละรอบของการเปรียบเทียบ คีย์ที่มีค่ามากจะถูกสลับที่ไปอยู่ในตำแหน่งตอนท้าย หรือคีย์ที่มีค่า น้อยจะถูกสลับไปอยู่ในตำแหน่งตอนบน สำหรับตัวอย่างนี้จะเริ่มเปรียบเทียบข้อมูลคู่ท้ายก่อน โดยให้ข้อมูลที่มี ค่ามากสลับไปอยู่ด้านท้ายของข้อมูล หรือข้อมูลที่มีค่าข้อมูลมากอยู่ทางด้านล่างของแถวนั่นเอง 

                                              


2.5.2) การจัดเรียงลำดับข้อมูลแบบ Insertion Sort เป็นการจัดเรียงล าดับข้อมูลประเภท Internal sorting โดยได้เทคนิคมาจากลักษณะการจัดไพ่ในมือ ของผู้เล่น คือ เมื่อผู้เล่นได้ไพ่ใบใหม่เพิ่มขึ้นมา จะนำไพ่ใบนั้นไปแทรกในตำแหน่งที่เหมาะสม ทำให้ไพ่ใน มือบางส่วนต้องขยับตำแหน่งออกไป ซึ่งการจัดเรียงล าดับข้อมูลแบบแทรกนี้ จะเริ่มพิจารณาคีย์ในตำแหน่งที่ 2 เป็นต้นไป โดยนำคีย์ที่พิจารณาไปแทรกในตำแหน่งที่ถูกต้อง และจะมีผลให้คีย์ในตำแหน่งที่อยู่หลัง ต าแหน่งที่แทรกขยับตำแหน่งออกไปเรื่อยๆ จากวิธีการดังกล่าว ถ้าการพิจารณาคีย์มาถึงตำแหน่งที่ I จะเห็นได้ว่าข้อมูลจะถูกแบ่งออกเป็นสอง ส่วน คือ ส่วนแรกจะเป็นส่วนที่ถูกจัดเรียงลำดับตามคีย์แล้ว อีกส่วนจะเป็นส่วนที่ยังไม่ได้ทำการจัดเรียง 

อ่านเพิ่มเติม






 2.4 การทำซ้ำ

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

การเขียนขั้นตอนวิธีสำหรับการทำงานแบบทำซ้ำ
ลักษณะของการทำงานแบบทำซ้ำ มีลักษณะการทำงานอยู่ 2 ลักษณะคือ
1. ทำการตรวจสอบเงื่อนไขก่อนการทำซ้ำหรือ ทำในขณะที่ ( Do – While )
2. ทำการตรวจสอบเงื่อนไขหลังจากการทำซ้ำหรือทำจนกระทั่ง ( Do – Until )
โครงสร้างผังงานการทำซ้ำมีอยู่ 2 ลักษณะคือ ทำซ้ำในขณะที่ และ ทำซ้ำจนกระทั่ง ลักษณะการทำงานของโครงสร้างผังงานการทำซ้ำทั้ง 2 มีการทำงานที่แตกต่างกัน ดังนั้น วิธีการเขียนอธิบายขั้นตอนวิธีการทำงานและรหัสเทียมสำหรับการทำซ้ำในแต่ละลักษณะ จึงมีความแตกต่างกัน

การเขียนขั้นตอนวิธีสำหรับการทำงานแบบทำซ้ำ ลักษณะทำในขณะที่

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

                                               


 2.3 การออกแบบขั้นตอนวิธี

 ขั้นตอนวิธี (algorithm) คือ ขั้นตอนการแก้ปัญหาอย่างเป็นลำดับ โดยประกอบด้วยชุดคำสั่งการทำงานอย่างเป็นลำดับและชัดเจน 

        การออกแบบขั้นตอนวิธี (algorithm development) เป็นการออกแบบขั้นตอนในการแก้ปัญหา ซึ่งในปัญหาเดียวกันอาจมีการออกแบบคำสั่งที่ไม่เหมือนกัน ขึ้นอยู่กับประสบการณ์ของผู้แก้ไข แต่หากได้ผลลัพธ์ที่ถูกต้องแล้ว ก็ถือว่าขั้นตอนวิธีสามารถแก้ไขปัญหาได้ การออกแบบขั้นตอนวิธี มีเครื่องมือในการนำเสนอขั้นตอนวิธี ดังนี้
        1) การบรรยาย เป็นการเขียนบรรยายวิธีการแก้ปัญหาอย่างเป็นลำดับ แต่อาจยากต่อการนำไปใช้ 
ตัวอย่างเช่น

   2) การเขียนผังงาน (Flowchart) เป็นการนำเสนอวิธีการแก้ปัญหาโดยการนำขั้นตอนการประมวลผลมาเขียนเป็นรูปแบบของแผนภาพ ประกอบด้วยสัญลักษณ์ต่างๆ ที่มีการกำหนดไว้เป็นมาตรฐาน  ดังนั้น ผังงานโปรแกรมจึงเป็นผังงานที่แสดงลำดับขั้นตอนการทำงานในโปรแกรม อ่านเพิ่มเติม
ตัวอย่างเช่น
                     



 2.2 การระบุข้อมูลเข้า ข้อมุลออก และเงื่อนไขของปัญหา

2.2.1 การระบุข้อมูลออก

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

2.2.2 การระบุข้อมูลเข้า

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

2.2.3 เงื่อนไขของปัญหา

รายละเอียดของปัญหา คือ การพิจารณาความต้องการของปัญหา ให้แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยนของจำนวนเต็ม 5 จำนวนองค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถ แสดงได้ดังนี้ อ่านเพิ่มเติม




 บทที่ 2 การแก้ปัญหาและขั้นตอนวิธี

2.1 การแก้ปัญหาด้วยคอมพิวเตอร์

 หลักการแก้ปัญหา

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

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

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

1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา
2. การเลือกเครื่องมือและออกแบบขั้นตอนวิธีในการแก้ปัญหา
3. การดำเนินการแก้ปัญหา
4. การตรวจสอบและปรับปรุงวิธีการ