บทที่ 9 การเรียงลำดับข้อมูล (Sorting)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 5 การดำรงชีวิตของพืช
Advertisements

ประกาศกรมสวัสดิการและคุ้มครองแรงงาน เรื่อง หลักเกณฑ์และวิธีการเลือกตั้งคณะกรรมการสวัสดิการในสถานประกอบกิจการ ประกาศราชกิจจานุเบกษา วันที่ 22 พฤษภาคม.
เรื่อง แนวทางการเลือกซื้อคอมพิวเตอร์
เฉลยใบงานที่ 1 องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
ชื่อผู้สอน : นางฐิติมา พิริยะ
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
การใช้งานโปรแกรม SPSS
1 Search & Sort Search & Sort วรวิทย์ พูลสวัสดิ์.
การพัฒนาผลสัมฤทธิ์ทางการเรียน วิชา อุตสาหกรรมการท่องเที่ยว
หน่วยที่ 6 แถวลำดับ (Array)
องค์ประกอบของคอมพิวเตอร์
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน เรื่อง หลักการทำงานของคอมพิวเตอร์ วิชาคอมพิวเตอร์พื้นฐาน สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 โรงเรียนเฉลิมราชประชาอุทิศ.
ระบบฐานข้อมูลบริการวิชาการ ของสำนักงานบริการวิชาการ ระเบียบพัฒนาวิชาการ พ. ศ.2551 คู่มือการใช้งานระบบฐานข้อมูล บริการวิชาการ – สะดวก รวดเร็ว ไม่ซับซ้อน.
๕ เรื่องเด่นในร่างรัฐธรรมนูญ
ระบบการควบคุมภายในกลุ่มวิสาหกิจชุมชน
การแพร่กระจายนวัตกรรม Diffusion of Innovation
หน่วยที่ 1 ข้อมูลทางการตลาด. สาระการเรียนรู้ 1. ความหมายของข้อมูลทางการตลาด 2. ความสำคัญของข้อมูลทางการตลาด 3. ประโยชน์ของข้อมูลทางการตลาด 4. ข้อจำกัดในการหาข้อมูลทาง.
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
ACCOUNTING FOR INVENTORY
บทที่ 5 เครื่องมือสืบค้นข้อมูล (Search Engine)
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
BC320 Introduction to Computer Programming
แนวทางการออกแบบโปสเตอร์
การบันทึกรายการค้าในสมุดบัญชี
Multistage Cluster Sampling
โครงสร้างภาษา C Arduino
การบัญชีต้นทุนช่วง (Process Costing).
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
Vernier เวอร์เนียร์ คือเครื่องมือที่ใช้วัดระยะ (distance) หรือ ความยาว (length) ให้ได้ค่าอย่างละเอียด เวอร์เนียร์ต่างจากไม้บรรทัดทั่วๆไป เพราะมี 2 สเกล.
การจัดการควบคุมคุณภาพข้อมูล
Presentation การจัดการข้อร้องเรียนในธุรกิจบริการ Customer Complaint Management for Service.
บทที่ 1 ระบบสารสนเทศ (Information System)
เรื่อง ความพึงพอใจต่อการให้บริการห้องสมุด
บทที่ 8 การควบคุมโครงการ
One Point Lesson (OPL).....บทเรียนประเด็นเดียว
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
หลักการแต่ง คำประพันธ์ประเภท โคลง. หลักการแต่ง คำประพันธ์ประเภท โคลง.
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การวิเคราะห์องค์กร รู้จักตนเอง
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
การแสดงเจตจำนงของประชาชนตามระบอบประชาธิปไตย
บทที่ 6 แนวคิดเทคโนโลยีเสมือนจริง
บริษัท พัฒนาวิชาการ (2535) จำกัด
บทที่ 9 การทำซ้ำ (Loop).
รูปแบบ และ ประโยชน์การขายสินค้าออนไลน์
SMS News Distribute Service
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
วิธีการสุ่มตัวอย่าง วิธีการสุ่มตัวอย่างมี 2 วิธี
BASIC STATISTICS MEAN / MODE / MEDIAN / SD / CV.
บทที่ 7 การประมวลผลอาร์เรย์
หลักเกณฑ์การเก็บรักษาข้อมูลจราจรทางคอมพิวเตอร์ ของผู้ให้บริการ
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
หน่วยการเรียนรู้ที่ 2 การกำหนดประเด็นปัญหา
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
บทที่ 10 วงจรรายได้.
มหาวิทยาลัยราชภัฏสวนสุนันทา
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
การจัดการภาครัฐ และภาคเอกชน Public and private management
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
กระดาษทำการ (หลักการและภาคปฏิบัติ)
วิชากฎหมายล้มละลาย
ใบสำเนางานนำเสนอ:

บทที่ 9 การเรียงลำดับข้อมูล (Sorting)

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

9.2 ประเภทของการเรียงลำดับข้อมูล 1. การเรียงลำดับแบบภายใน (Internal Sorting) หมายถึง การเรียงลำดับที่ข้อมูลทั้งหมดถูกเก็บไว้ในหน่วยความจำหลัก ทำให้การเข้าถึงข้อมูลได้อย่างรวดเร็ว 2. การเรียงลำดับแบบภายนอก (External Sorting) หมายถึง การเรียงลำดับข้อมูลในกรณีที่มีข้อมูลจำนวนมาก ไม่สามารถเก็บไว้ในหน่วยความจำได้ทั้งหมด จำเป็นต้องแบ่งข้อมทูลออกเป็นส่วน ๆ แต่ละส่วนมีขนาดพอที่สามารถเก็บไว้ในหน่วยความจำหลักได้ ข้อมูลส่วนที่เก็บไว้ในหน่วยความจำหลักจะทำการเรียงลำดับแบบภายใน แล้วข้อมูลส่วนที่เรียงลำดับแล้วไปเก็บไว้ในหน่วยความจำสำรอง เพื่อรวมกับข้อมูลส่วนอื่น ๆ

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

9.3 การเรียงลำดับแบบเลือก (Selection Sort) ตัวอย่างที่ 9.1 จงเรียงลำดับข้อมูลจากน้อยไปหามาก โดยวิธีการเรียงลำดับแบบเลือก รอบที่ 1 จากช่องที่ 1 ถึงช่องที่ 5 หาค่าข้อมูลที่น้อยที่สุดคือ 3 ซึ่งอยู่ในช่องที่ 4 ให้สลับค่าของข้อมูลในช่องที่ 1 และช่องที่ 4 1 2 3 4 5 9 6 5 3 4 1 2 3 4 5 3 6 5 9 4

9.3 การเรียงลำดับแบบเลือก (Selection Sort) รอบที่ 2 จากช่องที่ 2 ถึงช่องที่ 5 หาค่าข้อมูลที่น้อยที่สุดคือ 4 ซึ่งอยู่ในช่องที่ 5 ให้สลับค่าของข้อมูลในช่องที่ 2 และช่องที่ 5 รอบที่ 3 จากช่องที่ 1 ถึงช่องที่ 5 หาค่าข้อมูลที่น้อยที่สุดคือ 3 ซึ่งอยู่ในช่องที่ 4 ให้สลับค่าของข้อมูลในช่องที่ 1 และช่องที่ 4 1 2 3 4 5 3 4 5 3 6 1 2 3 4 5 3 4 5 9 4

9.3 การเรียงลำดับแบบเลือก (Selection Sort) รอบที่ 4 จากช่องที่ 4 ถึงช่องที่ 5 หาค่าข้อมูลที่น้อยที่สุดคือ 6 ซึ่งอยู่ในช่องที่ 5 ให้สลับค่าของข้อมูลในช่องที่ 4 และช่องที่ 5 เมื่อสิ้นสุดรอบที่ 4 จะได้ข้อมูลที่เรียงลำดับเรียบร้อยแล้ว ดังนี้ 1 2 3 4 5 3 4 5 6 9 1 2 3 4 5 3 4 5 6 9

9.4 การเรียงลำดับแบบแทรก (Insertion Sort) การเรียงลำดับแบบเลือก เป็นการเรียงลำดับแบบภายใน มีขั้นตอนการทำงานในการเรียงลำดับข้อมูลจากน้อยไปหามาก ดังนี้ คือ 1. พิจารณาข้อมูลตัวแรก โดยทำการเรียงลำดับข้อมูลสองตัวแรกของชุดข้อมูล 2. พิจารณาข้อมูลตัวที่สาม โดยนำข้อมูลตัวที่สามเปรียบเทียบข้อมูลสองตัวแรก แล้วนำข้อมูลตัวที่สามมาแทรกในตำแหน่งที่เหมาะสม 3. พิจารณาข้อมูลตัวต่อ ๆ ไป จนกระทั้งหมดชุดข้อมูล

9.4 การเรียงลำดับแบบแทรก (Insertion Sort) ตัวอย่างที่ 9.2 จงเรียงลำดับข้อมูลจากน้อยไปหามาก โดยวิธีการเรียงลำดับแบบแทรก รอบที่ 1 เปรียบเทียบข้อมูลในช่องที่ 1 โดยวิธีการเรียงลำดับแบบแทรก 1 2 3 4 5 9 6 5 3 4 1 2 3 4 5 6 9 5 3 4

9.4 การเรียงลำดับแบบแทรก (Insertion Sort) รอบที่ 2 พิจารณาข้อมูลในช่องที่ 3 คือ 5 โดยนำไปเปรียบเทียบกับข้อมูลในช่องที่ 1 คือ 6 และข้อมูลช่องที่ 2 คือ 9 ดังนั้นจึงแทรกข้อมูล 5 ในช่องที่ 1 รอบที่ 3 พิจารณาข้อมูลในช่องที่ 4 คือ 3 โดยนำไปเปรียบเทียบกับข้อมูลในช่องที่ 1 คือ 5 ข้อมูลช่องที่ 2 คือ 6 และข้อมูลช่องที่ 2 คือ 6 ดังนั้นจึงแทรกข้อมูล 3 ในช่องที่ 1 1 2 3 4 5 5 6 9 3 4 1 2 3 4 5 3 5 6 9 4

9.4 การเรียงลำดับแบบแทรก (Insertion Sort) รอบที่ 4 พิจารณาข้อมูลในช่องที่ 5 คือ 4 โดยนำไปเปรียบเทียบกับข้อมูลในช่องที่ 1 คือ 3 ข้อมูลช่องที่ 2 คือ 5 ข้อมูลช่องที่ 3 คือ 6 และข้อมูลช่องที่ 4 คือ 9 ดังนั้นจึงแทรกข้อมูล 4 ในช่องที่ 2 เมื่อสิ้นสุดรอบที่ 4 จะได้ข้อมูลที่เรียงลำดับเรียบร้อยแล้ว ดังนี้ 1 2 3 4 5 3 4 5 6 9 1 2 3 4 5 3 4 5 6 9

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) การเรียงลำดับแบบฟองสบู่ เป็นการเรียงลำดับแบบภายใน มีขั้นตอนการทำงานในการเรียงลำดับข้อมูลจากน้อยไปหามาก ดังนี้ คือ 1. พิจารณาข้อมูลตัวสุดท้าย เปรียบเทียบกับข้อมูลตัวที่อยู่ก่อนหน้า แล้วทำการสลับตำแหน่งให้ค่าน้อยกว่าอยู่ข้างบน 2. แล้วหาค่าที่น้อยกว่า เปรียบเทียบกับข้อมูลที่อยู่ก่อนหน้า แล้วทำการสลับตำแหน่งให้ค่าน้อยกว่าอยู่ข้างบน 3. ทำการเปรียบเทียบและสลับตำแหน่งเรื่อย ๆ จนกระทั้งได้ค่าน้อยที่สุดของชุดข้อมูล

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) 4. พิจารณาข้อมูลตัวสุดท้าย แล้วทำการเปรียบเทียบและสลับตำแหน่ง จนกระทั้งได้ค่าน้อยที่สุดไปอยู่มี่ตำแหน่งที่ 2 5. ทำไปเรื่อย ๆ จนกระทั้งได้ข้อมูลที่เรียงลำดับตามต้องการ

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) ตัวอย่างที่ 9.3 จงเรียงลำดับข้อมูลจากน้อยไปหามาก โดยวิธีการเรียงลำดับแบบฟองสบู่ รอบที่ 1 1. เปรียบเทียบข้อมูลในช่องที่ 5 คือ 4 และข้อมูลช่องที่ 4 คือ 3 ซึ่ง 3 < 4 จึงไม่ต้องสลับตำแหน่ง 1 2 3 4 5 9 6 5 3 4 1 2 3 4 5 9 6 5 3 4

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) 2. เปรียบเทียบข้อมูลช่องที่ 4 คือ 3 และข้อมูลช่องที่ 3 คือ 5 ซึ่ง 5> 3 จึงสลับตำแหน่งข้อมูล 5 และ 3 3. เปรียบเทียบข้อมูลช่องที่ 3 คือ 3 และข้อมูลช่องที่ 2 คือ 6 ซึ่ง 6> 3 จึงสลับตำแหน่งข้อมูล 6 และ 3 1 2 3 4 5 9 6 3 5 4 1 2 3 4 5 6 3 6 5 4

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) 4. เปรียบเทียบข้อมูลช่องที่ 2 คือ 3 และข้อมูลช่องที่ 1 คือ 9 ซึ่ง 9> 3 จึงสลับตำแหน่งข้อมูล 9 และ 3 สิ้นสุดรอบที่ 1 จะเห็นว่าค่าที่น้อยที่สุดคือ 3 ได้สลับไปอยู่ในตำแหน่งแรกของชุดข้อมูล 1 2 3 4 5 3 9 6 5 4

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) รอบที่ 2 1. เปรียบเทียบข้อมูลในช่องที่ 5 คือ 4 และข้อมูลช่องที่ 4 คือ 5 ซึ่ง 5 > 4 จึงสลับตำแหน่งของข้อมูล 5 และ 4 2. เปรียบเทียบข้อมูลในช่องที่ 4 คือ 4 และข้อมูลช่องที่ 3 คือ 6 ซึ่ง 6 > 4 จึงสลับตำแหน่งของข้อมูล 6 และ 4 1 2 3 4 5 3 9 6 4 5 1 2 3 4 5 3 9 4 6 5

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) 3. เปรียบเทียบข้อมูลช่องที่ 3 คือ 4 และข้อมูลช่องที่ 2 คือ 9 ซึ่ง 9 > 4 จึงสลับตำแหน่งข้อมูล 9 และ 4 สิ้นสุดรอบที่ 2 จะเห็นว่าค่าที่น้อยที่สุดคือ 4 ได้สลับไปอยู่ในตำแหน่งที่2 ของชุดข้อมูล 1 2 3 4 5 3 4 9 6 5

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) รอบที่ 3 1. เปรียบเทียบข้อมูลในช่องที่ 5 คือ 4 และข้อมูลช่องที่ 4 คือ 6 ซึ่ง 6 > 5 จึงสลับตำแหน่งของข้อมูล 6 และ 5 1 2 3 4 5 3 4 9 5 6

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) 2. เปรียบเทียบข้อมูลในช่องที่ 4 คือ 5 และข้อมูลช่องที่ 3 คือ 9 ซึ่ง 9 > 5 จึงสลับตำแหน่งของข้อมูล 9 และ 5 สิ้นสุดรอบที่ 3 จะเห็นว่าค่าที่น้อยที่สุดคือ 5 ได้สลับไปอยู่ในตำแหน่งที่3 ของชุดข้อมูล 1 2 3 4 5 3 4 5 9 6

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) รอบที่ 4 1. เปรียบเทียบข้อมูลในช่องที่ 5 คือ 6 และข้อมูลช่องที่ 4 คือ 9 ซึ่ง 9 > 6 จึงสลับตำแหน่งของข้อมูล 9 และ 6 1 2 3 4 5 3 4 5 6 9

9.5 การเรียงลำดับแบบฟองสบู่ (Bubble Sort) สิ้นสุดรอบที่ 4 จะเห็นว่าค่าที่น้อยที่สุดคือ 6 ได้สลับไปอยู่ในตำแหน่งที่4 ของชุดข้อมูล สิ้นสุดรอบที่ 4 จะได้ข้อมูลที่เรียงลำดับแล้ว ดังนี้ 1 2 3 4 5 3 4 5 6 9

ตารางเปรียบเทียบ การทำงานของวิธีการเรียงลำดับข้อมูล ข้อดี ข้อเสีย การเรียงลำดับแบบแทรก - เข้าใจง่าย - ทำงานได้ช้าสำหรับ - ทำงานได้เร็วสำหรับ ชุดข้อมูลขนาดใหญ่ ชุดข้อมูลขนาดเล็ก การเรียงลำดับแบบเลือก - ทำงานได้เร็วมากสำหรับ การเรียงลำดับแบบฟองสบู่ - ทำงานได้เร็วมากสำหรับชุดข้อมูลที่มีการเรียงลำดับ - ทำงานได้ช้ามากสำหรับชุดข้อมูลที่ยังไม่มีการเรียงลำดับ