การจัดเรยงข้อมูลแบบ Quick Sort มีขันตอน 4 ขัน
ผังงานแสดงขันตอน วธีการจัดเรยงข้อมูล
1. ถ้าจํานวนตัวเลขมีเพียง 0 หรือ 1 ตัวไม่ต้อง ทํางาน ให้หยุดทําได้ 2. เลือกตัวเลขขึนมาหนึงตัว เรียกเลขตัวนีว่า Pivot สมมุติว่าคือ v 3. แบ่งกลุ่มตัวเลขออกเปน 2 กลุ่ม โดยกลุ่มที 1 จะต้องเปนเลขทีน้อยกว่า v ทังหมด และกลุ่มที 2 จะ ต้องเปนเลขทีมากกว่า v ทังหมด 4. กลับไปทีขันตอนที 1 ใหม่ โดยทํากับเลข กลุ่มที 1 และทํากับเลขกลุ่มที 2 ทําแบบนีไปเรือยๆ จนเลขใน กลุ่มย่อยๆ ลดเหลือเพียงแค่ 0 หรือ 1 ตัวก็หยุดได้
QUICK SORT ก า ร จั ด เ รี ย ง อ ย่ า ง ร ว ด เ ร็ ว
วธีการจัดเรยงข้อมูลทีได้รับมี ประสิทธิภาพสูงสุดเปนอย่างไร เปนกรณีทีข้อมูลทีนํามาเรียงลําดับ ไม่มีการเรียงลําดับ อยู่ก่อนเลย ทําให้ในเเต่ละรอบของการเเบ่ง ส่ วน มีข้อ มูลหลักอยู่ตรงกลางของข้อมูลนันๆ เสมอ ในกรณีนีใช้ เวลาประมาณ O(n log n) คือ ความเร็วปานกลาง อธิบายง่ายๆ จะเปนการวนลูปสองรอบ ลูปชันนอกวน แบบปกติ (n รอบ) แต่ลูปชันในวนแบบตัดข้อมูลทีไม่ เกียวข้องออกไปทีละครึงด้วย (log n) จึงกลายเปน O(n log n)
วธีการจัดเรยงข้อมูลทีได้รับมี ประสิทธิภาพตําสุดเปนอย่างไร กรณีทีแย่ทีสุ ด เปนกรณีทีข้อมูลจะนํามาเรียงลําดับ มีการเรียงลําดับอยู่ก่อนแล้วซึงอาจเรียงจากมากไป น้อยหรือจากน้อยไปมาก ในกรณีการแบ่งส่ วนแต่ละ ครังจะได้ข้อมูลทีถูกแบ่งเพียงส่ วนเดียว เนืองจาก ข้อมูลทีใช้ในการเปรียบเทียบอยู่ตําแหน่งปลายสุ ด ของกลุ่มพอดี
นางสาวรัมภรดา อาสนสุวรรณ ม.4/4 เลขที่ 10ก
SELECTION SORT การเรยงลําดับแบบเลือก
รู ปแบบการจัดเรยงข้อมูล นันมีขันตอนวธีอย่างไร วิธีนี้จะคนหาหรือสแกนคาตัวเลขที่มาคาน อย ที่สุดภายในลิสต ในรอบแรกจะเริ่มตนสแกน คนหาตัง้ แตตัวแรกจนถึงตัวสุดทาย หลังจากที่ พบตําแหนงของคาที่นอยที่สุดแลว ก็จะทําการ สลับตําแหนงไปไวดานซายสุด ในรอบตอไปจะ ขยับตําแหนงไปยังตัวที่สอง และทําการสแกน ขอมูลที่มีคาน อยที่สุดตัง้ แตตัวที่สองจนถึงตัว สุดทาย เมื่อพบแลว ก็จะสลับตําแหนงกันเชน เคย ทําเชนนี้ไปเรื่อย ๆ จนครบทุกตัว
ผังงานแสดงขันตอนวธี การจัดเรยงข้อมูล
วธีการจัดเรยงข้อมูลที ได้รับมีประสิทธิภาพ สูงสุดเปนอย่างไร O(n2)มีสูตรเหมือนกับการจัดเรียง ขอมูลที่ไดประสิทิภาพที่สุด
ธีการจัดเรยงข้อมูลทีได้ รับมีประสิทธิภาพตํา สุดเปนอย่างไร O(n2) มีสูตรเหมือนกับการจัด เรียงขอมูลที่ไดรับประสิทธิภาพ ที่สุด
นางสาวรัมภ์รดา อาสนสุวรรณ ม.4/4 เลขที 10ก
Merge Sort
การเรยงลําดับแบบผสาน
รู ปแบบการจัดเรยงข้อมูล นันมีขันตอนวธีอย่างไร
วธีการจัดเรยงข้อมูลทีได้รับมี ประสิทธิภาพสูงสุดเปนอย่างไร
merge sort จะทําการแบงขอมูลออกเป็ น สวนๆกอน แลวคอยเรียงขอมูลในสวน ยอย จากนัน ้ นํ าเอาขอมูลสวนยอยที่เรียงไว แลวมารวมกันและเรียงไปในเวลา เดียวกัน อัลกอริทึมจะเรียงพรอมกับผสาน ขอมูลเขาดวยกันจนกระทัง่ ขอมูลทุกตัว รวมกันกลายเป็ นขอมูลเดียวอีกครัง้
ผังงานแสดงขันตอนวธี การจัดเรยงข้อมูล
เนื่องจากวาไดมีการแบงขอมูลออกเป็ นกลุม ยอยตางๆแลวจึงคอยทําการจัดเรียงขอมูลกลุม ยอยกอน ทําใหการเปรียบเทียบคาลดจํานวณ ครัง้ จึงทําใหประสิทธิภาพของการเรียงขอมูล แบบ Merge Sort คือ O(n log n) สําหรับ Oชนิดนี้ถือวามีความเร็วระดับกลางๆ คือ เป็ นการทํางานลูปแบบ n รอบ ที่มีลูปแบบ log n รอบอยูขางใน
วธีการจัดเรยงข้อมูลทีได้รับมี ประสิทธิภาพสูงสุดเปนอย่างไร { O(n^{2})}O คือใชในการระบุทรัพยากรที่ใช ในการทํางานของอัลกอริทึมเมื่อมีขนาดของ อินพุทเปลี่ยนไป O(n) คือ จํานวนที่ใชในการ ทํางานน อยสุด อัลกอริทึม A มีประสิทธิภาพ เป็ น O(n2) ถา n = 10 แลว ฟั งกชัน A จะ ใชเวลาทํางานชาที่สุด 100 หนวยเวลา (อาจ จะเร็วกวา100ได แตชาสุดไมเกิน100)
นางสาวรัมภรดา อาสนสุวรรณ ม.4/4 เลขที่ 10ก
เป น การจั ด เรี ย งโดยใช ก ารเปรี ย บเที ย บระหว า งข อ มู ล เป น หลั ก ซึ่ ง เราสามารถพิ สู จ น ใ ห เ ห็ น แล ว ว า การจั ด เรี ย ง ดั ง กล า วจะมี RUNNING TIME ไม ดี ไ ปกว า O(N LOG N) แต ว า ถ า เรามี ก ารจั ด เรี ย งข อ มู ล ซึ่ ง ค า ของข อ มู ล เป น จํา นวนเต็ ม ที่ อ ยู ระหว า ง 1 ถึ ง K แล ว เราสามารถเขี ย นขั้ น ตอนวิ ธี ที่ จั ด เรี ย งตั ว เลขชุ ด ดั ง กล า ว หรื อ ง า ยๆคื อ การจั ด เรี ย งจากเลข น อ ยไป มากว า มี จํา นวนกี่ ตั ว บ า ง ขั้ น ตอนการจั ด เรี ย งข อ มู ล 1.สั ง เกตเปรี ย บข อ มู ล โดยดู จ ากข อ มู ล ที่ ซํ้า กั น ก อ นว า มี ทั้ ง หมดกี่ แ บบ 2.นั บ จํา นวนข อ มู ล ว า มี จํา นวนข อ มู ล ที่ ซํ้า กั น ทั้ ง หมดกี่ ตั ว 3. นํา ข อ มู ล ที่ ร วบรวมได ม าเรี ย งข อ มู ล ตามลํา ดั บ อี ก โดยเรี ย งจากค า น อ ยไปหาค า มาก
4 . ว ธี ก า ร จั ด เ ร ย ง ข้ อ มู ล ที ไ ด้ รั บ มี ป ร ะ สิ ท ธิ ภ า พ ตํา สุ ด เ ป น อ ย่ า ง ไ ร
3 . ว ธี ก า ร จั ด เ ร ย ง ข้ อ มู ล ที ไ ด้ รั บ มี ป ร ะ สิ ท ธิ ภ า พ สู ง สุ ด เ ป น อ ย่ า ง ไ ร
2 . ผั ง ง า น แ ส ด ง ขั น ต อ น ก า ร จั ด เ ร ย ง ข้ อ มู ล
1 . รู ป แ บ บ ก า ร จั ด เ ร ย ง ข้ อ มู ล นั น มี ขั น ต อ น ว ธี อ ย่ า ง ไ ร
COUNTING SORT
หลั ก การสํา คั ญ เราจะเขี ย นขั้ น ตอนที่ คํา นวณว า สํา หรั บ แต ล ะค า ของ X มี ข อ มู ล อยู กี่ ตั ว ที่ น อ ยกว า หรื อ เท า กั บ X ถ า เราทราบว า มี ข อ มู ล 5 ตั ว ซึ่ ง น อ ยกว า X แล ว เราจะได ว า X ต อ งอยู ตํา แหน ง ที่ 6 โดยอั ต โนมั ติ ซึ่ ง การคํา นวณนี้ จ ะไม ใ ช เ วลาที่ ม ากนั ก ขั้ น ตอนวิ ธี COUNTING-SORT(A, B, K) เมื่ อ A เป น ข อ มู ล เข า N, B เป น ข อ มู ล ที่ จั ด เรี ย งและ K เป น จํา นวนเต็ ม ที่ ใ หญ ที่ สุ ด ใน A สู ต ร O(N+K)
จะต อ งใช เ วลามากเมื่ อ เราใช ห าตั ว เลขที่ อ ยู ติ ด ๆกั น และมี จํา นวนมาก เช น การหาจํา นวน เลขที่ มี เ ป น ร อ ยตั ว จะใช เ วลานาน COUNTING-SORT(A, B, K) เมื่ อ A เป น ข อ มู ล เข า N, B เป น ข อ มู ล ที่ จั ด เรี ย งและ K เป น จํา นวนเต็ ม ที่ ใ หญ ที่ สุ ด ใน A ข อ มู ล เข า A[1..N], K ข อ มู ล ออก B[1..N] โดยที่ B[1] < B[2] < B[3] < . . . < B[N]
นางสาวรัมภรดา
อาสนสุวรรณ ม.4/4 เลขที่ 10ก
RANDOM QUICK SORT
รู ปแบบการจัดเรียงข้อมูล มันจะสุ่มข้อมูลมาตัวหนึงแล้วเอาไว้ตัวแรกจากนันจะเอาไป อ้างอิง(เทียบ)กับข้อมูลทังหมดทีเราใส่เพือตรวจสอบ พอ ตรวจสอบเสร็จเราจะได้ชุดข้อมูลทีเทียบกับตัวทีมันเทียบ แล้วน้อยกว่า จากนันมันก็จะสลับตัวทีเราเทียบกับตําแหน่ง สุดท้ายของข้อมูลชุดทีเทียบแล้วน้อยกว่า***กรณีเรียง ข้อมูลจากน้อยไปมาก****
วิธีการจัดเรียงข้อมูลทีได้รับมีประสิทธิภาพสูงสุดอย่างไร
ข้อมูลถูกจัดเรียงลําดับเรียบร้อยแล้ว กรณีแต่ละรอบจะมีการเปรียบเทียบคีย์เพียงครัง เดียว เพราะฉะนันจํานวนการเปรียบเทียบคือ O(n Log n)
ผังแสดงขันตอนวิธีการจัดเรียงข้อมูล ตัวอย่างรู ปแบบที จัดเรียงจากเลขทีน้อยกว่า เช่น 3,5,7,9,11 นําเลขทีมีค่ามากทีสุด มาวางไว้ด้านหน้า นําเลขทีมีค่ามากทีสุดอันดับ2 มาไว้ด้านหหน้า
วิธีการจัดเรียงข้อมูลทีได้รับมีประสิทธิภาพตําสุด
วิธีการจัดเรียงข้อมูลทีเลวร้ายทีสุดของการใช้งาน Random Quick Sort โดยทัวไปคือ O (n2) กรณีที เลวร้ายทีสุดเกิดขึนเมือหมุนเลือกเปนองค์ประกอบที รุ นแรง (น้อยทีสุดหรือมากทีสุด) เสมอซึงจะเกิดขึนเมือ อาร์เรย์อินพุตมีการเรียงลําดับหรือเรียงลําดับย้อน กลับและองค์ประกอบแรกหรือองค์ประกอบสุดท้ายจะ ถูกเลือกเปนการสุ่ม
นางสาวรัมภรดา
อาสนสุวรรณ ม.4/4 เลขที่ 10ก
INSERTION SORT
•รู ป แบบการจั ด เรี ย งข อ มู ล นั้ น มี ขั้ น ตอนวิ ธี อ ย า งไร รู ป แบบการจั ด เรี ย งของ INSERTION SORT คื อ หลั ก การจั ด เรี ย ง เหมื อ นกั บ การเรี ย งไพ ใ นมื อ โดยจะรั บ ไพ ม าที ล ะใบ เมื่ อ รั บ ไพ ม าแล ว จะหาว า ไพ ใ บนั้ น ควรจะแทรกลงไปที่ ช อ งไหนในกองไพ ที่ อ ยู ใ นมื อ ดี สมมุ ติ ฐ านคื อ ไพ ใ นมื อ จะต อ งจั ด เรี ย งไว อ ยู แ ล ว อาจจะเรี ย งจากน อ ยไป มาก หรื อ จากมากไปน อ ยก็ ไ ด เมื่ อ รั บ ไพ ม าจนครบทุ ก ใบ ไพ ทั้ ง หมดที่ อยู ใ นมื อ จะจั ด เรี ย งกั น อย า งถู ก ต อ ง
•ผั ง งานแสดงขั้ น ตอนวิ ธี ก ารจั ด เรี ย งข อ มู ล
•การจั ด เรี ย งข อ มู ล ที่ ไ ด รั บ มี ป ระสิ ท ธิ ภ าพสู ง สุ ด หรื อ ที่ ดี ที่ สุ ด เป น กรณที่ ข อ มู ล ที่ จ ะนํา มาเรี ย งลํา ดั บ มี ก ารเรี ย งลํา ดั บ ตามที่ ต อ งการเเล ว ใน กรณี นี้ เ เต ล ะรอบของการเพิ่ ม ข อ มู ล ใหม เ ข า ไป จะมี ก ารเปรี ย บเที ย บเพี ย งครั้ ง เดี ย วเท า นั้ น ดั ง นั้ น จํา นวนนครั้ ง ในการเปรี ย บจึ ง เป น N-1 ครั้ ง หรื อ ใช เ วลาประมาณO(N) นั่ น เอง
•วิ ธี ก ารจั ด เรี ย งข อ มู ล ที่ ไ ด รั บ มี ป ระสิ ท ธิ ภ าพต า สุ ด หรื อ ที่ เ เย ที่ สุ ด เป น กรณี ที่ ข อ มู ล ที่ จ ะนํา มาเรี ย งลํา ดั บ เรี ย งกลั บ กั น กั บ ที่ ต อ งการ เช น ต อ งการเรี ย งลํา ดั บ จากข อ มู ล น อ ยไปหา มาก เเต ข อ มู ล ที่ นํา มาเรี ย งลํา ดั บ จากมากไปหาน อ ย ซึ่ ง ถ า รวมจํา นวนครั้ ง ของทุ ก ๆรอบเเล ว จะได เ ท า กั บ 1+2+3…+(N-1)=N(N-1)/2 ครั้ ง รวมเวลาที่ ใ ช ประมาณ O(N^2)^2 นางสาวรัมภรดา
อาสนสุวรรณ ม.4/4 เลขที่ 10ก
RADIX SORT รูปแบบการจัดเรียงข้อมูลนันมีขันตอนวิธีอย่างไร
การเรียงลําดับแบบฐานเปนการเรียงลําดับโดยการพิจารณาข้อมูลทีละหลักใช้ ขอ ้ มูลกับ Linked List 1.เริมพิจารณาจากหลักทีมีค่าน้อยทีสุดก่อน นันคือถ้าข้อมูลเปนเลขจํานวนเต็มจะพิจารณาหลักหน่วยก่อน 2.การจัดเรียงจะนําข้อมูลทีละตัว แล้วนําไปเก็บไว้ทีซึ งจัดไว้สําหรับค่านัน เปนกลุ่มๆ ตามลําดับการเข้ามา 3.ในแต่ละรอบเมือจัดกลุ่มเรียบร้อยแล้ว ให้รวบรวมข้อมูลจากทุกกลุ่มเข้าด้วยกัน โดยเริมเรียงจากกลุ่มทีมีค่าน้อยทีสุดก่อน แล้วเรียงไปเรือยๆ จนหมดทุกกลุ่ม 4.ในรอบต่อไปนําข้อมูลทังหมดทีได้จัดเรียงในหลักหน่วยเรียบร้อยแล้วมาพิจารณาจัดเรียงในหลักสิ บต่อไป ทําไปเรือยๆ จน กระทังครบทุกหลัก
ผังงานแสดงขันตอนวิธก ี ารจัดเรียงข้อมูล
วิ ธก ี ารจัดนเรียงข้อมูลทีได้รบ ั มีประสิ ทธิภาพสูงสุดเปนอย่างไร การประเมิ ขันตอนวิธี RADIX-SORT(A, d) เมือ A เปนข้อมูลเข้า n ทีแต่ละค่ามีจํานวนตัวเลขสูงสุด d ตัว และ d เปนตําแหน่งสุดท้าย (most-significant digit) ของตัวเลขใน A ข้อมูลเข้า A[1..n], d ข้อมูลออก A[1..n] โดยที A[1] < A[2] < A[3] < . . . < A[n] สรุ ปคือ จํานวนรอบของการเรียงลําดับ และจํานวนคิวทีใช้ ในการเรียงแต่ละรอบน้อย
วิธก ี ารจัดเรียงข้อมูลทีได้รบ ั มีประสิ ทธิภาพตาสุดเปนอย่างไร ขันตอนวิธี RADIX-SORT(A, d) เมือ A เปนข้อมูลเข้า n ทีแต่ละค่ามีจํานวนตัวเลขสูงสุด d ตัว และ d เปนตําแหน่งสุดท้าย (most-significant digit) ของตัวเลขใน A ข้อมูลเข้า A[1..n], d ข้อมูลออก A[1..n] โดยที A[1] < A[2] < A[3] < . . . < A[n] สรุ ปคือ จํานวนรอบของการเรียงลําดับ และจํานวนคิวทีใช้ ในการเรียงแต่ละรอบมาก
นางสาวรัมภรดา
อาสนสุวรรณ ม.4/4 เลขที่ 10ก
BUBBLE SORT รูปแบบการจัดเรียงข้อมูลนันมีขันตอน วิธีอย่างไร การเรียงข้อมูลแบบ Bubble Sort เปนการเปรียบเทียบค่า2ค่าที อยู่ติดกันโดยเริมจากการเปรียบเทียบตัวที1กับ2 และตัวที2กับ3 ไป เรือยๆจนกว่าจะครบค่าและทําซําอีกจนกว่าจะไม่มีการสลับที 1.ใช้เปรียบเทียบข้อมูลทีอยู่ติดกันทีละคู่ 2.ถ้าข้อมูลทีเปรียบเทียบไม่อยู่ในตําแหน่งทีต้องการสลับทีกัน 3.ทิศทางการทํางานอาจจะทําจากคู่ซ้ายไปหาขวา หรือคู่ขวาไปหา ซ้าย 4.ในแต่ระรอบทีเปรียบเทียบ ข้อมูลทีมีค่ามากจะถูกสลับไปตําแหน่ง ท้าย หรือข้อมูลทีมีค่าน้อยจะถูกสลับไปยังตําแหน่งตอนบน(จะเลือก เปรียบเทียบจากขวามาซ้าย หรือซ้ายไปหาขวาก็ได้) 5.ข้อมูลทีมีค่ามากกว่าสลับไปตอนท้ายของข้อมูล
วิ ธี ก ารจั ด เรี ย งข้ อ มู ล ที ได้ รั บ มี ประสิ ท ธิ ภ าพสู ง สุ ด เปนอย่ า งไร
เปนกรณีทีจํานวนครังของการเปรียบเทียบข้อมูลทีมี น้อยทีสุด คือ 1 ครังในรอบเดียว หรือใช้เวลาประมาณ O(n) ซึงกรณีเช่นนีจะเกิดขึนได้ ก็ต่อเมือข้อมูลที ต้องการนํามาเรียงลําดับนันมีการเรียงลําดับอยู่ก่อน แล้วนันเอง โดยระยะเวลาขึนอยู่กับจํานวน input ทีใส่ เข้ามา ซึงถ้าจํานวน input เพิ มขึนสองเท่า ระยะเวลา ทีใช้ในการประมวลผลก็จะเพิ มขึนสองเท่าด้วย
ผั ง งานแสดงขั นตอนวิ ธี ก ารจั ด เรี ย ง ข้ อ มู ล 1.การทํางานจะแบ่งลิตส์ออกเปนสองส่วน คือส่วนทีจัดเรียง แล้วอยู่ฝงซ้ายและส่วนทียังไม่จัดเรียงจะอยู่ฝงขวา 2.ในแต่ระรอบการทํางานจะมีการเปรียบเทียบค่าในแต่ละคู่ทีอยู่ ติดกัน 3.การทํางานเริมต้นทีท้ายลิสต์ (เรียงจากน้อยไปมาก) และจะ สลับค่าเมืออยู่ผิดลําดับ ซึงจะทําไปเรือย ๆ จากนันค่าทีน้อยทีสุด จะถูกขยับขึนไปเก็บไว้ในฝงลิสต์ทีได้จัดเรียงแล้ว 4.กําแพงทีทําหน้าทีตําแหน่ง ดรรชนีจะเพิ มค่าอีกหนึงด้วยการ ขยับไปทางขวาอีกหนึงตําแหน่งเพื อจะได้จัดการเปรียบเทียบกับ ค่าทียังไม่ได้จัดเรียงจนกว่าข้อมูลในลิสต์จะถูก จัดเรียงหมด
วิ ธี ก ารจั ด เรี ย งข้ อ มู ล ที ได้ รั บ มี ประสิ ท ธิ ภ าพตําสุ ด เปนอย่ า งไร
กรณีทีแย่ทีสุด เปนกรณีทีต้องใช้จํานวนครังในการเปรีบย เทียบมากทีสุดนันคือ ถ้าไฟล์มีขนาด n ต้องใช้จํานวนครังใน การเปรียบเทียบมาทีสุดคือ จํานวน n-1 ครัง รวมเวลาทีใช้ และในแต่ละรอบจะมีจํานวนครังในการเปรียบเทียบดังนี รอบที 1 เปรียบเทียบ n-1 ครัง รอบที 2 เปรียบเทียบ n-2 ครัง รอบที 3 เปรียบเทียบ n-3 ครัง
ซึงจะรวมจํานวนครังของทุกๆรอบแล้วจะได้ (n – 1) + (n – 2) + (n – 3) + … + (n –… ) = n(n – 1)/2 รวมเวลาทีใช้ประมาณ o(n²) 0 คือจํานวนการทํางานในกรณีทีมากทีสุด
นางสาวรัมภรดา
อาสนสุวรรณ ม.4/4 เลขที่ 10ก