55
By Juthawut By Juthawut Chantharamalee Chantharamalee 1 ววววววววววววววววววว ววววววววววววววววววว ( ( Data Data Structure) Structure) วววว วววว 4122202 4122202

บทที่ 2 ความรู้เบื้องต้น ( Introduction )

  • Upload
    woods

  • View
    67

  • Download
    19

Embed Size (px)

DESCRIPTION

บทที่ 2 ความรู้เบื้องต้น ( Introduction ). By Juthawut Chantharamalee. หลักนามธรรม( Abstraction). - PowerPoint PPT Presentation

Citation preview

Page 1: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

By Juthawut By Juthawut ChantharamaleeChantharamalee 11วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222024122202

Page 2: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

หัล�กหัล�กนามูธรรมูนามูธรรมู((AbstrAbstraction) action) หัล�กนามูธรรมู ถื�อเป็�นหัล�กการที่��ส�าค�ญหัล�กการหัล�กนามูธรรมู ถื�อเป็�นหัล�กการที่��ส�าค�ญหัล�กการหัน �ง โดยค�าวิ#า หัน �ง โดยค�าวิ#า ““นามูธรรมู นามูธรรมู Abstract”Abstract” จะจะที่�าใหัที่'กส��งในโลกแหั#งควิามูเป็�นจร�งด�ง#ายดายข้ )น ที่�าใหัที่'กส��งในโลกแหั#งควิามูเป็�นจร�งด�ง#ายดายข้ )น ดวิยการพิ�จารณาบางส��งแยกออกจากควิามูเป็�นดวิยการพิ�จารณาบางส��งแยกออกจากควิามูเป็�นจร�งข้องส��งเหัล#าน�)นโดยอธ�บายวิ#าส��งๆน�)นที่�าอะไร ไมู#จร�งข้องส��งเหัล#าน�)นโดยอธ�บายวิ#าส��งๆน�)นที่�าอะไร ไมู#ต้องมู'#งเนนในรายละเอ�ยดวิ#าต้องที่�างานอย#างไร ด�งต้องมู'#งเนนในรายละเอ�ยดวิ#าต้องที่�างานอย#างไร ด�งน�)นการค�ดดวิยหัล�กนามูธรรมูน�) จ งที่�าใหัเราสามูารถืน�)นการค�ดดวิยหัล�กนามูธรรมูน�) จ งที่�าใหัเราสามูารถืค�ดวิ�ธ�การแกป็0ญหัาดวิยการต้�ดที่อนส��งที่��ซั�บซัอน ค�ดวิ�ธ�การแกป็0ญหัาดวิยการต้�ดที่อนส��งที่��ซั�บซัอน หัร�อรายละเอ�ยดป็ล�กย#อยที่��ไมู#จ�าเป็�นออกไป็ไดหัร�อรายละเอ�ยดป็ล�กย#อยที่��ไมู#จ�าเป็�นออกไป็ได

22วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 3: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

อ�ลกอร�ที่ มูก�บควิามูเป็�นอ�ลกอร�ที่ มูก�บควิามูเป็�นนามูธรรมูโดยธรรมูชาต้� นามูธรรมูโดยธรรมูชาต้� (The (The Abstract Nature of Abstract Nature of Algorithm)Algorithm) อ�ลกอร�ที่ มูอ�ลกอร�ที่ มู ค�อข้�)นต้อนวิ�ธ�ที่��ใชส�าหัร�บแกป็0ญหัา โดยค�อข้�)นต้อนวิ�ธ�ที่��ใชส�าหัร�บแกป็0ญหัา โดย

สามูารถืส��อออกมูาในร�ป็แบบข้องภาษาพิ�ดหัร�อภาษาสามูารถืส��อออกมูาในร�ป็แบบข้องภาษาพิ�ดหัร�อภาษาธรรมูชาต้� ธรรมูชาต้� (Natural Language) (Natural Language) และหัากมู�การน�าไป็และหัากมู�การน�าไป็ใชเพิ��อแกป็0ญหัาที่างคอมูพิ�วิเต้อร4 ก5จะส��ออกมูาในร�ป็แบบใชเพิ��อแกป็0ญหัาที่างคอมูพิ�วิเต้อร4 ก5จะส��ออกมูาในร�ป็แบบข้องป็ระโยคภาษาอ�งกฤษที่��มู�ควิามูใกลเค�ยงก�บช'ดค�าส��งข้องป็ระโยคภาษาอ�งกฤษที่��มู�ควิามูใกลเค�ยงก�บช'ดค�าส��งโป็รแกรมูที่��เร�ยกวิ#าช�โดโคดโป็รแกรมูที่��เร�ยกวิ#าช�โดโคด ที่��ใชเป็�นต้�วิกลางส��อสารอ�ลกอที่��ใชเป็�นต้�วิกลางส��อสารอ�ลกอร�ที่ มูน�)นๆร�ที่ มูน�)นๆ

  33วิ�ชาโป็รแกรมูป็ระย'กต้4ดานการจ�ดการส�าน�กงานอ�ต้โนมู�ต้� วิ�ชาโป็รแกรมูป็ระย'กต้4ดานการจ�ดการส�าน�กงานอ�ต้โนมู�ต้�

รหั�ส รหั�ส 41226024122602

Page 4: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ในควิามูเป็�นจร�ง อ�ลกอร�ที่ มูมู�ควิามูเป็�นนามูธรรมูอย�#ในต้�วิในควิามูเป็�นจร�ง อ�ลกอร�ที่ มูมู�ควิามูเป็�นนามูธรรมูอย�#ในต้�วิโดยธรรมูชาต้�อย�#แลวิ อ�ลกอร�ที่ มูสามูารถืที่�าใหัเป็�นร�ป็ธรรมูไดโดยธรรมูชาต้�อย�#แลวิ อ�ลกอร�ที่ มูสามูารถืที่�าใหัเป็�นร�ป็ธรรมูไดดวิยการผ่#าน ดวิยการผ่#าน ““ต้�วิแที่น ต้�วิแที่น Representation” Representation” เพิ��อน�าเสนออ�ลเพิ��อน�าเสนออ�ลกอร�ที่ มูเหัล#าน�)นกอร�ที่ มูเหัล#าน�)น ด�งน�)นควิามูส�าค�ญอย�#ที่��วิ#า ควิรแยกควิามูด�งน�)นควิามูส�าค�ญอย�#ที่��วิ#า ควิรแยกควิามูแต้กต้#างระหัวิ#างอ�ลกอร�ที่ มูและต้�วิแที่นออกจากก�นแต้กต้#างระหัวิ#างอ�ลกอร�ที่ มูและต้�วิแที่นออกจากก�น เช#นเช#น

  

44วิ�ชาโป็รแกรมูป็ระย'กต้4ดานการจ�ดการส�าน�กงานอ�ต้โนมู�ต้� วิ�ชาโป็รแกรมูป็ระย'กต้4ดานการจ�ดการส�าน�กงานอ�ต้โนมู�ต้� รหั�ส รหั�ส 41226024122602

เร��องราวิในนวิน�ยาย (Strory)

หัน�งส�อ (Book)

ต้�วิแที่นที่างต้�วิแที่นที่างกายภาพิกายภาพิ

นามูธรรมูนามูธรรมูหัร�อหัร�อแนวิค�ดแนวิค�ด

Page 5: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ด�งน�)น อ�ลกอร�ที่ มู ก5ค�อกระบวินการที่��น�าไป็ใชสรางด�งน�)น อ�ลกอร�ที่ มู ก5ค�อกระบวินการที่��น�าไป็ใชสรางโป็รแกรมูเพิ��อที่�างานและแกป็0ญหัาต้ามูที่��เราต้องการ ในโป็รแกรมูเพิ��อที่�างานและแกป็0ญหัาต้ามูที่��เราต้องการ ในข้ณะที่��ต้�วิแที่นก5ค�อโป็รแกรมูที่��ไดร�บการพิ�ฒนาข้ )นจากอ�ลข้ณะที่��ต้�วิแที่นก5ค�อโป็รแกรมูที่��ไดร�บการพิ�ฒนาข้ )นจากอ�ลกอร�ที่ มูน�)น หัร�อกล#าวิอ�กน�ยหัน �งก5ค�อ โป็รแกรมูก5ค�อกอร�ที่ มูน�)น หัร�อกล#าวิอ�กน�ยหัน �งก5ค�อ โป็รแกรมูก5ค�อต้�วิแที่นข้องอ�ลกอร�ที่ มู และเมู��อโป็รแกรมูไดร�บการพิ�ฒนาต้�วิแที่นข้องอ�ลกอร�ที่ มู และเมู��อโป็รแกรมูไดร�บการพิ�ฒนาข้�)นมูาภายในโป็รแกรมูก5จะป็ระกอบไป็ดวิยหัลายๆ โป็รเซัข้�)นมูาภายในโป็รแกรมูก5จะป็ระกอบไป็ดวิยหัลายๆ โป็รเซัสดวิยก�นสดวิยก�น

  

55วิ�ชาโป็รแกรมูป็ระย'กต้4ดานการจ�ดการส�าน�กงานอ�ต้โนมู�ต้� วิ�ชาโป็รแกรมูป็ระย'กต้4ดานการจ�ดการส�าน�กงานอ�ต้โนมู�ต้� รหั�ส รหั�ส 41226024122602

ต้�วิแที่นอ�ลกอร�

ที่ มู(Program)

ก�จกรรมูที่��เอ5กซั�ค�วิต้4อ�ลกอร�ที่ มูน�)น (Process)

Page 6: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

3.3.ซั�โดโคดไมู#ข้ )นก�บภาษาคอมูพิ�วิเต้อร4ซั�โดโคดไมู#ข้ )นก�บภาษาคอมูพิ�วิเต้อร4ภาษาใดภาษาหัน �ง แต้#สามูารถืแป็ลงเป็�นภาษาใดภาษาหัน �ง แต้#สามูารถืแป็ลงเป็�นภาษาคอมูพิ�วิเต้อร4 เช#น ภาษา ภาษาคอมูพิ�วิเต้อร4 เช#น ภาษา PASCAL, PASCAL, C C หัร�อ หัร�อ C++C++ ไดง#าย ไดง#าย

4.4.การเข้�ยนซั�โดโคดจะเข้�ยนมู'#งเนนการเข้�ยนซั�โดโคดจะเข้�ยนมู'#งเนนป็ระโยคก�จกรรมูที่��ใชในการเอ5กซั�ค�วิต้4ป็ระโยคก�จกรรมูที่��ใชในการเอ5กซั�ค�วิต้4โป็รแกรมูเป็�นส�าค�ญ โดยสามูารถืสรางโป็รแกรมูเป็�นส�าค�ญ โดยสามูารถืสรางป็ระโยคค�าส��งเร�ยงล�าด�บ ป็ระโยคค�าส��งเร�ยงล�าด�บ ((SequenceSequence ) )ก�าหันดที่างเล�อก ก�าหันดที่างเล�อก ((SelectionSelection ) ) และการและการที่�างานเป็�นรอบ ที่�างานเป็�นรอบ ((IterationIteration ) )

66วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 7: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

อ�ลกอร�ที่ มูที่�� อ�ลกอร�ที่ มูที่�� 21. 21. ต้�วิอย#างซั�โดโคดการอ#านข้อมู�ลต้�วิอย#างซั�โดโคดการอ#านข้อมู�ลในไฟล4เพิ��อพิ�มูพิ4รายงานในไฟล4เพิ��อพิ�มูพิ4รายงาน จากต้�วิอย#างอ�ลกอร�ที่ มูที่�� จากต้�วิอย#างอ�ลกอร�ที่ มูที่�� 21. 21. ที่��น�าเสนอในร�ป็ที่��น�าเสนอในร�ป็แบบข้องช�โดโคดน�)น จะที่�าการอธ�บายในแต้#ละหั�วิข้อแบบข้องช�โดโคดน�)น จะที่�าการอธ�บายในแต้#ละหั�วิข้อด�งรายละเอ�ยดต้#อไป็น�)ด�งรายละเอ�ยดต้#อไป็น�)

77วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222024122202

Algorithm sample (pageNumber)This algorithm reads a flie and prints a report. pre pageNumber passed by reference post Report Printed

pageNumber contains number of pages in report Return Number of lines printed1loop (not end of file) 1 read file 2 if (full page) 1 increment page number 2 write page number 3 end if 4 write report line 5 increment line count2 end loop3 Return line count end sample

Page 8: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ส#วินหั�วิข้องอ�ลกอร�ที่ มู ส#วินหั�วิข้องอ�ลกอร�ที่ มู ((Algorithm Header) Algorithm Header)

แต้#ละอ�ลกอร�ที่ มูจ�าเป็�นต้องเร��มูต้นดวิยส#วินหั�วิ หัร�อแต้#ละอ�ลกอร�ที่ มูจ�าเป็�นต้องเร��มูต้นดวิยส#วินหั�วิ หัร�อมู�กเร�ยกที่�บศั�พิที่4วิ#า มู�กเร�ยกที่�บศั�พิที่4วิ#า เฮดเดอร4 เฮดเดอร4 ((HeaderHeader ) ) ที่��มู�ไวิเพิ��อที่��มู�ไวิเพิ��อก�าหันดช��ออ�ลกอร�ที่ มู นอกจากน�)ย�งใชอธ�บายรายก�าหันดช��ออ�ลกอร�ที่ มู นอกจากน�)ย�งใชอธ�บายรายละเอ�ยดเก��ยวิก�บพิารามู�เต้อร4 ละเอ�ยดเก��ยวิก�บพิารามู�เต้อร4 ((ParametersParameters ) ) รวิมูรวิมูถื งเง��อนไข้ก#อน ถื งเง��อนไข้ก#อน ((PreconditionsPreconditions ) ) เง��อนไนหัล�ง เง��อนไนหัล�ง ((PostconditionsPostconditions ) ) ส��งเหัล#าน�)ถื�อวิ#าเป็�นส��งส�าค�ญ ส��งเหัล#าน�)ถื�อวิ#าเป็�นส��งส�าค�ญ เพิราะวิ#าโป็รแกรมูเมูอร4จะร�บที่ราบข้อมู�ลรายละเอ�ยดเพิราะวิ#าโป็รแกรมูเมูอร4จะร�บที่ราบข้อมู�ลรายละเอ�ยดภายในอ�ลกอร�ที่ มูน�)จากเฮดเดอร4และน�าอ�ลกอร�ที่ มูไป็ภายในอ�ลกอร�ที่ มูน�)จากเฮดเดอร4และน�าอ�ลกอร�ที่ มูไป็ป็ระย'กต้4ใชเพิ��อเข้�ยนการโป็รแกรมูต้#อไป็ ป็ระย'กต้4ใชเพิ��อเข้�ยนการโป็รแกรมูต้#อไป็

88วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 9: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

จ'ดป็ระสงค4 เง��อนไข้ และจ'ดป็ระสงค4 เง��อนไข้ และการร�เที่�ร4นการร�เที่�ร4นค#าค#า((Purpose, Purpose, Conditions and Conditions and Return Return ส�าหัร�บป็ระโยคส��นๆ ที่��อธ�บายถื�ดจากบรรที่�ดช��อข้อส�าหัร�บป็ระโยคส��นๆ ที่��อธ�บายถื�ดจากบรรที่�ดช��อข้องอ�ลกอร�ที่ มูก5ค�อจ'ดป็ระสงค4ข้องอ�ลกอร�ที่ มู ที่��มู�ไวิงอ�ลกอร�ที่ มูก5ค�อจ'ดป็ระสงค4ข้องอ�ลกอร�ที่ มู ที่��มู�ไวิเพิ��ออธ�บายในเร��องที่��วิไป็ข้องการป็ระมูวิลผ่ลในอ�ลกอเพิ��ออธ�บายในเร��องที่��วิไป็ข้องการป็ระมูวิลผ่ลในอ�ลกอร�ที่ มูน�)น แต้#ไมู#ไดหัมูายควิามูวิ#าใหัอธ�บายรายละเอ�ยดร�ที่ มูน�)น แต้#ไมู#ไดหัมูายควิามูวิ#าใหัอธ�บายรายละเอ�ยดที่�)งหัมูดข้องกระบวินการวิ#ามู�การที่�างานอย#างไร จ'ดที่�)งหัมูดข้องกระบวินการวิ#ามู�การที่�างานอย#างไร จ'ดมู'#งหัมูายข้องอ�ลกอร�ที่ มูที่�� มู'#งหัมูายข้องอ�ลกอร�ที่ มูที่�� 21. 21. คงไมู#ใช#การแสดงคงไมู#ใช#การแสดงสถืานะไฟล4ที่��เป็<ดใชงาน หัร�อจะต้องพิ�มูพิ4รายงานสถืานะไฟล4ที่��เป็<ดใชงาน หัร�อจะต้องพิ�มูพิ4รายงานอย#างไร แต้#จ'ดป็ระสงค4แที่จร�งข้องอ�ลกอร�ที่ มูก5ค�อ อย#างไร แต้#จ'ดป็ระสงค4แที่จร�งข้องอ�ลกอร�ที่ มูก5ค�อ ต้องการอ#านไฟล4เพิ��อน�ามูาพิ�มูพิ4รายงานเที่#าน�)นต้องการอ#านไฟล4เพิ��อน�ามูาพิ�มูพิ4รายงานเที่#าน�)น

99วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Page 10: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ส#วินบรรที่�ดถื�ดไป็ จะแสดงเง��อนไข้ก#อน ส#วินบรรที่�ดถื�ดไป็ จะแสดงเง��อนไข้ก#อน ((PreconditionsPreconditions ) ) ซั �งใชช��อย#อวิ#า ซั �งใชช��อย#อวิ#า Pre Pre โดยอ�ลกอร�ที่ มูโดยอ�ลกอร�ที่ มูที่�� ที่�� 21. 21. น�)นมู�การก�าหันดใหั น�)นมู�การก�าหันดใหั PageNumber PageNumber เป็�นค#าเป็�นค#าเร��มูต้นข้องเง��อนไข้ก#อน ด�งน�)นเมู��อมู�การเร�ยกใชงานอ�ลเร��มูต้นข้องเง��อนไข้ก#อน ด�งน�)นเมู��อมู�การเร�ยกใชงานอ�ลกอร�ที่ มู กอร�ที่ มู sample sample จ งต้องพิารามู�เต้อร4เลข้หันา จ งต้องพิารามู�เต้อร4เลข้หันา ((pageNumberpageNumber ) ) มูาดวิย โดยพิารามู�เต้อร4มูาดวิย โดยพิารามู�เต้อร4 pageNumberpageNumber ถื�กก�าหันดใหัส#งผ่#านค#าแบบ ถื�กก�าหันดใหัส#งผ่#านค#าแบบ passed passed by reference by reference แต้#อย#างไรก5ต้ามู ในกรณ�ที่��ไมู#มู�แต้#อย#างไรก5ต้ามู ในกรณ�ที่��ไมู#มู�เง��อนไข้ก#อน ก5สามูารถืเข้�ยนใหัอย�#ในร�ป็แบบด�งต้#อไป็น�)เง��อนไข้ก#อน ก5สามูารถืเข้�ยนใหัอย�#ในร�ป็แบบด�งต้#อไป็น�)

1010วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Pre nothing

Page 11: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

และถืาในกรณ�ที่��มู�อ�นพิ'ต้พิารามู�เต้อรและถืาในกรณ�ที่��มู�อ�นพิ'ต้พิารามู�เต้อร??หัลายๆ ต้�วิ หัลายๆ ต้�วิ เง��อนไข้ก#อนก5จะแสดงรายะเอ�ยดข้องพิารามู�เต้อร4ในเง��อนไข้ก#อนก5จะแสดงรายะเอ�ยดข้องพิารามู�เต้อร4ในแต้#ละต้�วิดวิย โดยพิ�จารณาจากต้�วิอย#างต้#อไป็น�) ค�อแต้#ละต้�วิดวิย โดยพิ�จารณาจากต้�วิอย#างต้#อไป็น�) ค�ออ�ลกอร�ที่ มูการคนหัาข้อมู�ลในอาร4เรย4อย#างง#าย ซั �งมู�อ�ลกอร�ที่ มูการคนหัาข้อมู�ลในอาร4เรย4อย#างง#าย ซั �งมู�ก�าหันดรายละเอ�ยดในเฮดเดอร4ด�งต้#อไป็น�)ก�าหันดรายละเอ�ยดในเฮดเดอร4ด�งต้#อไป็น�)

1111วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Algorithm search (list, argument, location)Search array for specific item and return index location. pre list contains data array to be searched argument contains data to be located in list post location contains matching index -or- undetermined if not foundReturn true if found, false if not found

Page 12: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�าด�บป็ระโยคค�าส��ง ล�าด�บป็ระโยคค�าส��ง ((Statement Statement Numbers) Numbers) ป็ระโยคค�าส��งจะมู�ล�าด�บก�าก�บไวิ ซั �งจะใชเลข้ที่ศัน�ยมู ป็ระโยคค�าส��งจะมู�ล�าด�บก�าก�บไวิ ซั �งจะใชเลข้ที่ศัน�ยมู

ดวิยการล�าด�บหัมูายเลข้เพิ��มูข้ )นที่��ละหัน �งภายในดวิยการล�าด�บหัมูายเลข้เพิ��มูข้ )นที่��ละหัน �งภายในโครงสรางข้องบล5อกน�)นๆ ซั �งเที่คน�คด�งกล#าวิจะที่�าใหัโครงสรางข้องบล5อกน�)นๆ ซั �งเที่คน�คด�งกล#าวิจะที่�าใหัง#ายต้#อการอ#านและอางอ�งป็ระโยคค�าส��ง เช#น จากต้�วิง#ายต้#อการอ#านและอางอ�งป็ระโยคค�าส��ง เช#น จากต้�วิอย#างอ�ลกอร�ที่ มูที่�� อย#างอ�ลกอร�ที่ มูที่�� 21. 21. เลข้ล�าด�บ เลข้ล�าด�บ 11. 11. ก5ค�อก5ค�อป็ระโยคค�าส��ง ป็ระโยคค�าส��ง read fileread file ในข้ณะที่��เลข้ล�าด�บ ในข้ณะที่��เลข้ล�าด�บ 12. .12. .

2 2 ค�อป็ระโยคค�าส��ง ค�อป็ระโยคค�าส��ง write page heading write page heading และและการใชเที่คน�คเลข้ล�าด�บน�)เอง จ งที่�าใหัสามูารถือางอ�งการใชเที่คน�คเลข้ล�าด�บน�)เอง จ งที่�าใหัสามูารถือางอ�งป็ระโยคค�าส��งที่��ต้องการเฉพิาะได รวิมูถื งที่�าใหัป็ระโยคป็ระโยคค�าส��งที่��ต้องการเฉพิาะได รวิมูถื งที่�าใหัป็ระโยคค�าส��งเหัล#าน�)นง#ายต้#อการอ#านค�าส��งเหัล#าน�)นง#ายต้#อการอ#าน

1212วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 13: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ต้�วิแป็ร ต้�วิแป็ร ((VariablesVariables) ) ในควิามูเป็�นจร�งเราไดไมู#จ�าเป็�นต้องก�าหันดต้�วิแป็รที่'กต้�วิในควิามูเป็�นจร�งเราไดไมู#จ�าเป็�นต้องก�าหันดต้�วิแป็รที่'กต้�วิที่��ใชงานในอ�ลกอร�ที่ มูก5ได ดวิยการก�าหันดช��อที่��สามูารถืส��อที่��ใชงานในอ�ลกอร�ที่ มูก5ได ดวิยการก�าหันดช��อที่��สามูารถืส��อควิามูหัมูายไดเข้าใจในต้�วิข้อมู�ลเอง หัร�อที่��เร�ยกวิ#า ควิามูหัมูายไดเข้าใจในต้�วิข้อมู�ลเอง หัร�อที่��เร�ยกวิ#า Intelligent Data Names Intelligent Data Names อย#างไรก5ต้ามู ก5มู�กฎเกณฑ์4อย#างไรก5ต้ามู ก5มู�กฎเกณฑ์4การต้�)งช��อต้�วิแป็รเพิ��อใชงานในอ�ลกอร�ที่ มูอย�# การต้�)งช��อต้�วิแป็รเพิ��อใชงานในอ�ลกอร�ที่ มูอย�# 3 3 ป็ระการป็ระการดวิยก�นค�อดวิยก�นค�อ 1. 1. หัากเป็�นไป็ไดไมู#ควิรต้�)งช��อเป็�นต้�วิอ�กข้ระต้�วิหัากเป็�นไป็ไดไมู#ควิรต้�)งช��อเป็�นต้�วิอ�กข้ระต้�วิเด�ยวิ เช#น เด�ยวิ เช#น A, B, CA, B, C 2. 2. ไมู#ควิรใชค�าที่��วิไป็ที่��มู�ควิามูไมู#ควิรใชค�าที่��วิไป็ที่��มู�ควิามูหัมูายเฉพิาะ หัมูายเฉพิาะ ((Generic NamesGeneric Names ) ) มูาต้�)งเป็�นช��อต้�วิแป็ร มูาต้�)งเป็�นช��อต้�วิแป็ร เช#น เช#น count, sum, total, row, column, file count, sum, total, row, column, file เป็�นต้น เป็�นต้น 3. 3. หัากจ�าเป็�นต้องใชค�าย#อก5ควิรต้�)งช��อใหัส��อควิามูหัากจ�าเป็�นต้องใชค�าย#อก5ควิรต้�)งช��อใหัส��อควิามูหัมูายใหัด� เช#น ค�าย#อ หัมูายใหัด� เช#น ค�าย#อ stdCnt stdCnt ใชแที่น ใชแที่น StudentCountStudentCount

1313วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 14: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

การสรางป็ระโยคค�าส��ง การสรางป็ระโยคค�าส��ง ((Statement Constructs) Statement Constructs) ส�าหัร�บการสรางป็ระโยคค�าส��ง โดยเฉพิาะช'ดส�าหัร�บการสรางป็ระโยคค�าส��ง โดยเฉพิาะช'ดค�าส��งส�าหัร�บการโป็รแกรมูเช�งโครงสราง จะมู�ค�าส� �งส�าหัร�บการโป็รแกรมูเช�งโครงสราง จะมู�ร�ป็แบบการสรางเพิ�ยง ร�ป็แบบการสรางเพิ�ยง 3 3 ร�ป็แบบเที่#าน�)น ซั �งร�ป็แบบเที่#าน�)น ซั �งป็ระกอบดวิยป็ระโยคค�าส��งต้#างๆ ต้#อไป็น�)ป็ระกอบดวิยป็ระโยคค�าส��งต้#างๆ ต้#อไป็น�)

1. 1. แบบเร�ยงล�าด�บ แบบเร�ยงล�าด�บ ((SequenceSequence ) ) 2. 2. แบบแบบเล�อกที่�างาน เล�อกที่�างาน ((SelectionSelection ) )

3. 3. แบบที่�างานซั�)า แบบที่�างานซั�)า ((Repetition/LoopRepetition/Loop)) 1414วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส

41222014122201

Page 15: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

1515วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Statement 1

Statement 2

Statement 3

Start

Stop

Statement 1

Statement 2

Conditio

n

T F

((aa ) ) แบบเร�ยงล�าด�บ แบบเร�ยงล�าด�บ ((SequenceSequence))

((bb ) ) แบบเล�อกการที่�างาน แบบเล�อกการที่�างาน ((SelectionSelection))

Page 16: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

1616วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Statement 1

T

F

((aa ) ) แบบที่�างานซั�)าดวิย แบบที่�างานซั�)าดวิย DoWhile LoopDoWhile Loop

((bb ) ) แบบที่�างานซั�)าดวิย แบบที่�างานซั�)าดวิย Repeat…Until LoopRepeat…Until Loop

Conditio

n

Statement 1

T

F

Conditio

n

Page 17: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

อ�ลกอร�ที่ มูที่�� อ�ลกอร�ที่ มูที่�� 22. 22. ต้�วิอย#างอ�ลกอร�ที่ มูการหัาส#วินต้�วิอย#างอ�ลกอร�ที่ มูการหัาส#วินเบ��ยงเบนมูาต้รฐานจากค#าเฉล��ย โดยส�งเกต้อ�ลกอร�ที่ มูเบ��ยงเบนมูาต้รฐานจากค#าเฉล��ย โดยส�งเกต้อ�ลกอร�ที่ มูน�)ด�ๆ จะพิบวิ#าไมู#มู�พิารามู�เต้อร4 ไมู#มู�ค�าอธ�บาย และไมู#มู�น�)ด�ๆ จะพิบวิ#าไมู#มู�พิารามู�เต้อร4 ไมู#มู�ค�าอธ�บาย และไมู#มู�การป็ระกาศัค#าต้�วิแป็รใดๆ โดยชน�ดข้องต้�วิแป็รและการป็ระกาศัค#าต้�วิแป็รใดๆ โดยชน�ดข้องต้�วิแป็รและจ'ดป็ระสงค4ไดถื�กก�าหันดไวิอย#างเรยบง#ายบนช��อที่��จ'ดป็ระสงค4ไดถื�กก�าหันดไวิอย#างเรยบง#ายบนช��อที่��สามูารถืส��อควิามูหัมูายในต้�วิเองสามูารถืส��อควิามูหัมูายในต้�วิเอง 1717วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส

41222024122202

Algorithm deviationpre nothingpost average and numbers with their deviation printed1loop (not end of file) 1 read number into array 2 add number to total 3 increment count2 end loop3. set average to total / count4 print average5 Loop (not and of array) 1 set devFromAve to array element - average 2. print array element and devFromAve6. loopend deviation

Page 18: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ควิามูร� เก��ยวิก�บควิามูร� เก��ยวิก�บข้อมู�ลและนามูธรรมู ข้อมู�ลและนามูธรรมู ((The Abstract The Abstract Data Types)Data Types) การเข้�ยนโป็รแกรมูในอด�ต้ เป็�นการเข้�ยนโป็รแกรมูในร�ป็การเข้�ยนโป็รแกรมูในอด�ต้ เป็�นการเข้�ยนโป็รแกรมูในร�ป็

แบบไมู#มู�โครงสราง หัร�อที่��เร�ยกวิ#าการเข้�ยนโป็รแกรมูแบบไมู#มู�โครงสราง หัร�อที่��เร�ยกวิ#าการเข้�ยนโป็รแกรมูแบบสป็าเก5ต้ต้� แบบสป็าเก5ต้ต้� ((Spaghetti codeSpaghetti code ) ) และการเข้�ยนและการเข้�ยนโป็รแกรมูจะมู�ร�ป็แบบการเข้�ยนที่��เช��อมูโยงกระโดดไป็มูาด�โป็รแกรมูจะมู�ร�ป็แบบการเข้�ยนที่��เช��อมูโยงกระโดดไป็มูาด�ย'#งเหัย�งพิ�นก�นไป็ก�นมูาอย#างเช#นเสนสป็าเก5ต้ต้�ที่��เสร�ร4ฟย'#งเหัย�งพิ�นก�นไป็ก�นมูาอย#างเช#นเสนสป็าเก5ต้ต้�ที่��เสร�ร4ฟอย�#บนจานน�)นเอง และต้#อมูาในราวิป็A คอย�#บนจานน�)นเอง และต้#อมูาในราวิป็A ค..ศัศั . 1970 . 1970 ก5ไดมู�ก5ไดมู�การพิ�ฒนาหัล�กการการเข้�ยนโป็รแกรมูเช�งโครงสรางข้ )นการพิ�ฒนาหัล�กการการเข้�ยนโป็รแกรมูเช�งโครงสรางข้ )นมูา และดวิยเที่คน�คด�งกล#าวิ จ งที่�าใหัการเข้�ยนโป็รแกรมูด�มูา และดวิยเที่คน�คด�งกล#าวิ จ งที่�าใหัการเข้�ยนโป็รแกรมูด�เป็�นระบบ ระเบ�ยบ ต้รวิจสอบง#าย ซั �งก5ค�อแนวิค�ดการเป็�นระบบ ระเบ�ยบ ต้รวิจสอบง#าย ซั �งก5ค�อแนวิค�ดการโป็รแกรมูแบบโมูด�ล โป็รแกรมูแบบโมูด�ล ((Modular ProgrammingModular Programming))

1818วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 19: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ข้อมู�ลเช�งเด��ยวิและเช�งข้อมู�ลเช�งเด��ยวิและเช�งป็ระกอบ ป็ระกอบ ((Atomic and Atomic and Composite Data)Composite Data) ข้อมู�ลเช�งเด��ยวิ ข้อมู�ลเช�งเด��ยวิ ((Atomic DataAtomic Data ) ) ค�อข้อมู�ลที่��ป็ระกอบค�อข้อมู�ลที่��ป็ระกอบ

ดวิยค#าเด�ยวิที่��ไมู#สามูารถืแบ#งข้อมู�ลน�)ออกไป็เพิ��อส��อดวิยค#าเด�ยวิที่��ไมู#สามูารถืแบ#งข้อมู�ลน�)ออกไป็เพิ��อส��อควิามูหัมูายไดอ�ก เช#น เลข้จ�านวินเต้5มู ควิามูหัมูายไดอ�ก เช#น เลข้จ�านวินเต้5มู 4562 4562 ก5ก5ค�อค#าเลข้จ�านวินเต้5มูเพิ�ยงค#าหัน �งเที่#าน�)น ส�าหัร�บส��งที่��อย�#ค�อค#าเลข้จ�านวินเต้5มูเพิ�ยงค#าหัน �งเที่#าน�)น ส�าหัร�บส��งที่��อย�#ต้รงก�นข้ามูค�อข้อมู�ลเช�งป็ระกอบ ต้รงก�นข้ามูค�อข้อมู�ลเช�งป็ระกอบ ((Composite DataComposite Data ) ) โดยข้อมู�ลป็ระกอบน�)นสามูารถืที่�าการแต้กออกเป็�นโดยข้อมู�ลป็ระกอบน�)นสามูารถืที่�าการแต้กออกเป็�น

ฟ<ลด4ย#อย ฟ<ลด4ย#อย ((SubfieldsSubfields ) ) และส��งที่��แต้กออกไป็มู�ควิามูและส��งที่��แต้กออกไป็มู�ควิามูหัมูายดวิย เช#น หัมูายเลข้โที่รศั�พิที่4ที่��เป็�นต้�วิเลข้ส#วินๆ ไดหัมูายดวิย เช#น หัมูายเลข้โที่รศั�พิที่4ที่��เป็�นต้�วิเลข้ส#วินๆ ไดค�อ ต้�วิเลข้ ค�อ ต้�วิเลข้ 3 3 ต้�วิแรกที่��รหั�สจ�งหัวิ�ด ส#วินที่��เหัล�อค�อเบอร4ต้�วิแรกที่��รหั�สจ�งหัวิ�ด ส#วินที่��เหัล�อค�อเบอร4หัมูายเลข้หัมูายเลข้

1919วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 20: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ชน�ดข้องข้อมู�ล ชน�ดข้องข้อมู�ล ((Data Type) Data Type)

ชน�ดข้องข้อมู�ลป็ระกอบดวิย ชน�ดข้องข้อมู�ลป็ระกอบดวิย 2 2 ส#วินดวิยก�นค�อ ส#วินดวิยก�นค�อ กล'#มูข้องข้อมู�ล กล'#มูข้องข้อมู�ล ((DataData))และโอเป็อเรช�น และโอเป็อเรช�น ((OperationsOperations ) ) ที่��สามูารถืป็ฏิ�บ�ต้�การบนข้อมู�ลได ที่��สามูารถืป็ฏิ�บ�ต้�การบนข้อมู�ลได เช#น ชน�ดข้องข้อมู�ลแบบจ�านวินเต้5มู เช#น ชน�ดข้องข้อมู�ลแบบจ�านวินเต้5มู ((IntegerInteger ) )ซั �งก5ค�อเลข้จ�านวินเต้5มูในช#วิงต้#างๆ ส��งเหัล#าน�)ค�อซั �งก5ค�อเลข้จ�านวินเต้5มูในช#วิงต้#างๆ ส��งเหัล#าน�)ค�อกล'#มูข้องข้อมู�ล ในข้ณะที่��โอเป็อเรช�นที่��ใชจ�ดการกล'#มูข้องข้อมู�ล ในข้ณะที่��โอเป็อเรช�นที่��ใชจ�ดการก�บกล'#มูข้อมู�ลเลข้จ�านวินเต้5มูเหัล#าน�)ก5ค�อ การบวิก ก�บกล'#มูข้อมู�ลเลข้จ�านวินเต้5มูเหัล#าน�)ก5ค�อ การบวิก (+)(+), , การลบ การลบ -( )-( ), , การค�ณ การค�ณ ((**)), , การหัาร การหัาร (/) (/) และและรวิมูถื งโอเป็อเรช�นอ��นๆ ที่��ต้องการน�ามูาใชงาน รวิมูถื งโอเป็อเรช�นอ��นๆ ที่��ต้องการน�ามูาใชงาน

2020วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 21: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

โครงสรางข้อมู�ล โครงสรางข้อมู�ล ((Data Structure) Data Structure)

โครงสรางข้อมู�ล ค�อ การรวิมูก�นข้องข้อมู�ลเช�งเด��ยวิโครงสรางข้อมู�ล ค�อ การรวิมูก�นข้องข้อมู�ลเช�งเด��ยวิและข้อมู�ลเช�งป็ระกอบเข้าดวิยก�นเป็�นกล'#มูพิรอมูก�บการและข้อมู�ลเช�งป็ระกอบเข้าดวิยก�นเป็�นกล'#มูพิรอมูก�บการก�าหันดควิามูส�มูพิ�นธ4 ค�าวิ#า ก�าหันดควิามูส�มูพิ�นธ4 ค�าวิ#า ““โครงสราง โครงสราง ((StructureStructure))” ” มู�มู�ควิามูหัมูายวิ#า กล'#มูข้อมู�ลที่��บรรจ'เข้าดวิยก�น ถืามู�การรวิมูควิามูหัมูายวิ#า กล'#มูข้อมู�ลที่��บรรจ'เข้าดวิยก�น ถืามู�การรวิมูก�นข้องข้อมู�ลในโครงสรางแลวิ เราก5สามูารถืก�าหันดควิามูก�นข้องข้อมู�ลในโครงสรางแลวิ เราก5สามูารถืก�าหันดควิามูส�มูพิ�นธ4ใหัก�บข้อมู�ลเหัล#าน�)นใหัเป็�นไป็ต้ามูกฎที่��ต้�)งข้ )นได ส�มูพิ�นธ4ใหัก�บข้อมู�ลเหัล#าน�)นใหัเป็�นไป็ต้ามูกฎที่��ต้�)งข้ )นได และดวิยภาษาโป็รแกรมู ส#วินใหัญ#แลวิมู�กสน�บสน'นและดวิยภาษาโป็รแกรมู ส#วินใหัญ#แลวิมู�กสน�บสน'นโครงสรางข้อมู�ลหัลายร�ป็แบบดวิยก�น รวิมูถื งโป็รแกรมูในโครงสรางข้อมู�ลหัลายร�ป็แบบดวิยก�น รวิมูถื งโป็รแกรมูในย'คใหัมู#ที่��อน'ญาต้ใหัโป็รแกรมูเมูอร4สามูารถืสรางโครงสรางย'คใหัมู#ที่��อน'ญาต้ใหัโป็รแกรมูเมูอร4สามูารถืสรางโครงสรางข้อมู�ลใหัมู#ๆ เพิ��อใชงานก�บแอป็พิล�เคช�นต้ามูต้องการไดข้อมู�ลใหัมู#ๆ เพิ��อใชงานก�บแอป็พิล�เคช�นต้ามูต้องการได

2121วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 22: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 24 24 รายละเอ�ยดโครงสรางรายละเอ�ยดโครงสรางข้อมู�ลแบบอาร4เรย4และเรคอร4ดข้อมู�ลแบบอาร4เรย4และเรคอร4ด

2222วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222024122202

อาร์�เร์ย์� (Array) อาร์�เร์ย์� (Array)ช'ดข้อมู�ลต้องเป็�นค#าชน�ดใดชน�ดหัน �ง ซั �งหัมูายควิามูวิ#า ช'ดข้อมู�ลจะต้องเป็�นชน�ดเด�ยวิก�น (Homogeneous ) โดยชน�ดข้องข้อมู�ลสามูารถือธ�บายล�กษณะต้�วิข้อมู�ลไดโดยต้รง

เป็�นการรวิมูก�นข้องช'ดข้อมู�ลที่��มู�ควิามูแต้กต้#างก�นลงในโครงสรางหัน �ง ดวิยการใชค�ย4ระบ'ต้�าแหัน#งล�าด�บต้�าแหัน#งมู�ควิามู

ส�มูพิ�นธ4ก�บข้อมู�ลที่��จ�ดเก5บ เช#น อาร4เรย4ที่��ใชจ�ดเก5บข้อมู�ลข้องเด�อน ค�อมูกราคมูถื งธ�นวิาคมู ด�งน�)นล�าด�บต้�าแหัน#งเด�อนก�บข้อมู�ลที่��จ�ดเก5บภายในจะส�มูพิ�นธ4ก�น เช#น ล�าด�บที่�� 2 ค�อเด�อนก'มูภาพิ�นธ4 เป็�นต้น

ไมู#มู�ควิามูส�มูพิ�นธ4 เน��องจากล�าด�บต้�าแหัน#งก#อนหัร�อหัล�งภายในเรคอร4ดจะไมู#มู�ควิามูส�มูพิ�นธ4ใดๆ

Page 23: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 25 25 โครงสรางข้อมู�ลชน�ดโครงสรางข้อมู�ลชน�ดต้#างๆต้#างๆ

2323วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222024122202

(a) แมูที่ร�กซั4

(b) ล�สต้4แบบเช�งเสน

(c) ที่ร� (d) กราฟ

Page 24: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ชน�ดข้อมู�ลนามูธรรมู ชน�ดข้อมู�ลนามูธรรมู ((Abstract Abstract Data Type : ADT) Data Type : ADT)

ADT ADT เป็�นการเข้�ยนเข้�ยนโคดเพิ��ออ#านไฟล4 และน�าไป็จ�ดเป็�นการเข้�ยนเข้�ยนโคดเพิ��ออ#านไฟล4 และน�าไป็จ�ดเก5บไวิในไลบราร� เก5บไวิในไลบราร� ((LibraryLibrary ) ) เพิ��อใหัโป็รแกรมูเมูอร4เพิ��อใหัโป็รแกรมูเมูอร4ที่��วิไป็สามูารถืน�าไป็ใชงานได และหัน �งในวิ�ต้ถื'ป็ระสงค4ที่��วิไป็สามูารถืน�าไป็ใชงานได และหัน �งในวิ�ต้ถื'ป็ระสงค4หัล�กต้ามูหัล�กวิ�ศัวิกรรมูซัอฟต้4แวิร4 หัล�กต้ามูหัล�กวิ�ศัวิกรรมูซัอฟต้4แวิร4 ((Software Software EngineeringEngineering ) ) ก5ค�อการเข้�ยนช'ดค�าส��งที่��สามูารถืน�าก5ค�อการเข้�ยนช'ดค�าส��งที่��สามูารถืน�ากล�บมูาใชไดอ�ก กล�บมูาใชไดอ�ก ((Reusable CodeReusable Code ) ) จ งเป็�นที่��มูาข้องจ งเป็�นที่��มูาข้องการซั#อนรายละเอ�ยด การซั#อนรายละเอ�ยด ((EncapsulateEncapsulate ) ) หัร�อการหัร�อการรวิบรวิมูข้อมู�ลย#อยต้#างๆ เข้าดวิยก�นก�บเมูธอด เพิ��อใชรวิบรวิมูข้อมู�ลย#อยต้#างๆ เข้าดวิยก�นก�บเมูธอด เพิ��อใชจ�ดการก�บข้อมู�ลดวิยการแยกออกมูาเป็�นโมูด�ลจ�ดการก�บข้อมู�ลดวิยการแยกออกมูาเป็�นโมูด�ลโป็รแกรมูหัร�อคลาสออกต้#างหัากโป็รแกรมูหัร�อคลาสออกต้#างหัาก

2424วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 25: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ด�งน�)นโป็รแกรมูใหัมู#ๆ ที่��เข้�ยนข้ )นจ งสามูารถืน�าด�งน�)นโป็รแกรมูใหัมู#ๆ ที่��เข้�ยนข้ )นจ งสามูารถืน�าเมูธอดน�)มูาใชงานไดที่�นที่� โดยไมู#ต้องมู'#งรายละเอ�ยดเมูธอดน�)มูาใชงานไดที่�นที่� โดยไมู#ต้องมู'#งรายละเอ�ยดเก��ยวิก�บการสรางแต้#อย#างใด และดวิยการรวิบรวิมูก�นเก��ยวิก�บการสรางแต้#อย#างใด และดวิยการรวิบรวิมูก�นข้องข้อมู�ลเข้าดวิยก�นก�บเมูธอดเหัล#าน�)จ งเร�ยกวิ#า ข้องข้อมู�ลเข้าดวิยก�นก�บเมูธอดเหัล#าน�)จ งเร�ยกวิ#า ชน�ดชน�ดข้อมู�ลนามูธรรมู หัร�อ ข้อมู�ลนามูธรรมู หัร�อ ADT ADT น�)นเอง โดยแบ#งเป็�น น�)นเอง โดยแบ#งเป็�น 2 2 ร�ป็ร�ป็แบบดวิยก�นค�อ แบบดวิยก�นค�อ 1. 1. ร�ป็แบบเช�งลอจ�ค�ล ร�ป็แบบเช�งลอจ�ค�ล ((Logical Logical FormForm ) ) เป็�นการน�ยามูข้อมู�ลดวิย เป็�นการน�ยามูข้อมู�ลดวิย ADT ADT โดยไมู#ย ดต้�ดก�บโดยไมู#ย ดต้�ดก�บซัอฟต้4แวิร4หัร�อฮาร4ดแวิร4ที่��ใชงาน ถื�อเป็�นพิ�)นฐานการซัอฟต้4แวิร4หัร�อฮาร4ดแวิร4ที่��ใชงาน ถื�อเป็�นพิ�)นฐานการออกแบบและพิ�ฒนาโป็รแกรมู ออกแบบและพิ�ฒนาโป็รแกรมู 2. 2. ร�ป็ร�ป็แบบเช�งฟ<ส�ค�ล แบบเช�งฟ<ส�ค�ล ((Physical FormPhysical Form ) ) เป็�นข้�)นการน�าไป็ใชเป็�นข้�)นการน�าไป็ใชงาน หัร�อการน�า งาน หัร�อการน�า ADT ADT มูาสรางดวิยโครงสรางข้อมู�ลมูาสรางดวิยโครงสรางข้อมู�ล

2525วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 26: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

Data Type

ร�ป็ที่�� ร�ป็ที่�� 26 26 แสดงควิามูส�มูพิ�นธ4ระหัวิ#างชน�ดแสดงควิามูส�มูพิ�นธ4ระหัวิ#างชน�ดข้อมู�ลเช�งลอจ�ค�ลและฟ<ส�ค�ลข้อมู�ลเช�งลอจ�ค�ลและฟ<ส�ค�ล

2626วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222024122202

ADT: Type Operations

Data Item: Logical Form

Data Structure: Storage Space Subroutines

Data Item: Physical Form

Page 27: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

การวิ�ดผ่ลอ�ลกอร�ที่ มู การวิ�ดผ่ลอ�ลกอร�ที่ มู ((Measuring Algorithm) Measuring Algorithm) อ�ลกอร�ที่ มูที่��ออกแบบเพิ��อน�าไป็ใชแกป็0ญหัาอ�ลกอร�ที่ มูที่��ออกแบบเพิ��อน�าไป็ใชแกป็0ญหัาบนงานๆ หัน �งน�)น โป็รแกรมูเมูอร4จ�าเป็�นต้องมู�บนงานๆ หัน �งน�)น โป็รแกรมูเมูอร4จ�าเป็�นต้องมู�ควิามูเข้าใจหัล�กพิ�)นฐานเก��ยวิก�บการวิ�ดผ่ลอ�ลควิามูเข้าใจหัล�กพิ�)นฐานเก��ยวิก�บการวิ�ดผ่ลอ�ลกอร�ที่ มู เพิ��อจะไดน�าอ�ลกอร�ที่ มู เพิ��อจะไดน�าอ�ลกอร�ที่ มู เพิ��อจะไดน�าอ�ลกอร�ที่ มู เพิ��อจะไดน�าอ�ลกอร�ที่ มูที่��มู�ป็ระส�ที่ธ�ภาพิไป็ใชแกป็0ญหัาไดอย#างกอร�ที่ มูที่��มู�ป็ระส�ที่ธ�ภาพิไป็ใชแกป็0ญหัาไดอย#างเหัมูะสมู ด�งน�)นเป็�นส��งที่��แน#นอนและยากต้#อการเหัมูะสมู ด�งน�)นเป็�นส��งที่��แน#นอนและยากต้#อการป็ฏิ�เสธ ก5ค�อ ป็ร�มูาณข้อมู�ลที่��อ�นพิ'ต้เข้ามูาในป็ฏิ�เสธ ก5ค�อ ป็ร�มูาณข้อมู�ลที่��อ�นพิ'ต้เข้ามูาในระบบย#อมูส#งผ่ลต้#อควิามูเร5วิในการป็ระมูวิลผ่ลระบบย#อมูส#งผ่ลต้#อควิามูเร5วิในการป็ระมูวิลผ่ล

2727วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 28: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 27 27 ต้�วิอย#างต้ารางแสดงข้นาดข้อมู�ลต้�วิอย#างต้ารางแสดงข้นาดข้อมู�ลที่��อ�นพิ'ต้ก�บเวิลาที่��ใชในการที่�างานที่��อ�นพิ'ต้ก�บเวิลาที่��ใชในการที่�างาน

2828วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222024122202

ขนาดของอ�นพุ�ต (Input Size)

เวลาที่��ใช้�ในการ์ที่�างานเพุ��อจั�ดเร์�ย์งช้�ดต�วเลข (Running Time)

10 ต�ว 100 ต�ว

1 , 000 ต�ว10, 000 ต�ว

2 ว�นาที่� 21 ว�นาที่�

1 นาที่� 15 นาที่�

จากร�ป็ที่�� จากร�ป็ที่�� 27. 27. เป็�นต้�วิอย#างต้ารางแสดงเป็�นต้�วิอย#างต้ารางแสดงป็ร�มูาณข้อมู�ลที่��อ�นพิ'ต้ก�บเวิลาที่��ใชในการที่�างานป็ร�มูาณข้อมู�ลที่��อ�นพิ'ต้ก�บเวิลาที่��ใชในการที่�างานเพิ��อจ�ดเร�ยงช'ดต้�วิเลข้ จะเหั5นไดวิ#า เวิลาที่��ใชในการเพิ��อจ�ดเร�ยงช'ดต้�วิเลข้ จะเหั5นไดวิ#า เวิลาที่��ใชในการที่�างาน ที่�างาน (Running Time)(Running Time) ข้องคอมูพิ�วิเต้อร4จะข้องคอมูพิ�วิเต้อร4จะแป็รผ่�นต้ามูข้นาดข้องข้อมู�ลที่��อ�นพิ'ต้เข้าไป็ ด�งน�)นแป็รผ่�นต้ามูข้นาดข้องข้อมู�ลที่��อ�นพิ'ต้เข้าไป็ ด�งน�)นข้นาดข้องอ�นพิ'ต้ ข้นาดข้องอ�นพิ'ต้ ((Input SizeInput Size ) ) จ งเป็�นส��งจ�าเป็�นจ งเป็�นส��งจ�าเป็�นที่��เราต้องน�ามูาพิ�จารณามูากที่��ส'ด เน��องจากมู�ผ่ลที่��เราต้องน�ามูาพิ�จารณามูากที่��ส'ด เน��องจากมู�ผ่ลต้#อเวิลาที่��ใชในการป็ระมูวิลผ่ลน�)นเองต้#อเวิลาที่��ใชในการป็ระมูวิลผ่ลน�)นเอง

Page 29: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

เราสามูารถืก�าหันดไดวิ#า เวิลาในการที่�างาน เราสามูารถืก�าหันดไดวิ#า เวิลาในการที่�างาน T T อ�ลกอร�ที่ มู แที่นอ�ลกอร�ที่ มู แที่นดวิยฟ0งก4ช�น ดวิยฟ0งก4ช�น T(n) T(n) ที่��มู�ข้อมู�ลอ�นพิ'ต้เข้ามูาจ�านวิน ที่��มู�ข้อมู�ลอ�นพิ'ต้เข้ามูาจ�านวิน n n ต้�วิ และจากต้�วิ และจากต้ารางด�งร�ป็ที่�� ต้ารางด�งร�ป็ที่�� 28. 28. สามูารถืน�ามูาเข้�ยนใหัอย�#ในร�ป็แบบฟ0งก4ช�น สามูารถืน�ามูาเข้�ยนใหัอย�#ในร�ป็แบบฟ0งก4ช�น T T ไดด�งน�)ไดด�งน�) T(10) T(10) = 2 = 2

วิ�นาที่� วิ�นาที่� T(100) T(100) = 2.1 = 2.1 วิ�นาที่�วิ�นาที่� T(1,000) T(1,000) = 1 = 1

นาที่�นาที่� T(10,000) T(10,000) = 15 = 15 นาที่�นาที่� จะส�งเกต้ไดวิ#าเมู��อจ�านวินอ�นพิ'ต้จะส�งเกต้ไดวิ#าเมู��อจ�านวินอ�นพิ'ต้

มู�ข้นาดเพิ��มูข้ )น ค#า มู�ข้นาดเพิ��มูข้ )น ค#า T(n) T(n) ก5จะเพิ��มูข้ )นในอ�ต้ราส#วินที่��ส�มูพิ�นธ4ก�บ ก5จะเพิ��มูข้ )นในอ�ต้ราส#วินที่��ส�มูพิ�นธ4ก�บ n n ด�งน�)นจ งกล#าวิไดวิ#า ด�งน�)นจ งกล#าวิไดวิ#า T(n) T(n) ค�อ อ�นด�บข้องข้นาด ค�อ อ�นด�บข้องข้นาด n (Order of n (Order of Magnitude) Magnitude) ซั �งสามูารถืแที่นดวิยส�ญล�กษณ4บ�Dกโอค�อ ซั �งสามูารถืแที่นดวิยส�ญล�กษณ4บ�Dกโอค�อ T(n) = T(n) = O(n) O(n) โดยที่��โป็แกรมูจะใชเวิลาในการที่�างานมูากนอยข้ )นอย�#ก�บโดยที่��โป็แกรมูจะใชเวิลาในการที่�างานมูากนอยข้ )นอย�#ก�บข้นาดข้องอ�นพิ'ต้ ด�งน�)นข้นาดข้องอ�นพิ'ต้ ด�งน�)น

2929วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

T(n ) = จั�านวนเวลาที่��ใช้�ในการ์ที่�างานเพุ��อจั�ดเร์�ย์งช้�ดข�อมู�ล n ต�ว

Page 30: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 28 28 กราฟเป็ร�ยบเที่�ยบเวิลาในการที่�างานในกรณ� กราฟเป็ร�ยบเที่�ยบเวิลาในการที่�างานในกรณ� Worst-Worst-case, Average-case, case, Average-case, และ และ Best-caseBest-case

3030วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222024122202

เราสามูารถืวิ�ดฟ0งก4ช�น เราสามูารถืวิ�ดฟ0งก4ช�น TT((nn ) ) ไดในกรณ�เลวิรายที่��ส'ด ไดในกรณ�เลวิรายที่��ส'ด กรณ�ด�ที่��ส'ด หัร�อกรณ�เฉล��ย หัร�ออาจวิ�ดไดที่'กกรณ� แต้#กรณ�ด�ที่��ส'ด หัร�อกรณ�เฉล��ย หัร�ออาจวิ�ดไดที่'กกรณ� แต้#อย#างไรก5ต้ามู กรณ�ด�ที่��ส'ด อย#างไรก5ต้ามู กรณ�ด�ที่��ส'ด ((Best-caseBest-case ) ) ข้องอ�ลกอร�ข้องอ�ลกอร�ที่ มูน�)นไมู#ใชป็ระเด5นใหัญ# ซั �งมู�กไมู#ก#อใหัเก�ดป็ระโยชน4ต้#อที่ มูน�)นไมู#ใชป็ระเด5นใหัญ# ซั �งมู�กไมู#ก#อใหัเก�ดป็ระโยชน4ต้#อข้อมู�ลใดๆ ส#วินกรณ�เฉล��ย ข้อมู�ลใดๆ ส#วินกรณ�เฉล��ย ((Average-caseAverage-case ) ) จะจะค�านวิณยาก ในข้ณะโดยที่��วิไป็ ค�านวิณยาก ในข้ณะโดยที่��วิไป็ TT((nn ) ) มู�กพิบบ#อยคร�)งมู�กพิบบ#อยคร�)งกรณ�เลยรายส'ด กรณ�เลยรายส'ด ((Worst-caseWorst-case ) ) ด�งน�)นการวิ�ดผ่ลอ�ลด�งน�)นการวิ�ดผ่ลอ�ลกอร�ที่ มูจ งมู�กพิ�จารณาควิามูซั'บซัอนดานเวิลากรณ�เลวิกอร�ที่ มูจ งมู�กพิ�จารณาควิามูซั'บซัอนดานเวิลากรณ�เลวิรายเที่#าน�)นรายเที่#าน�)น Best-

case

Input (n)

Time (T)Worst-case

Page 31: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

เกณฑ์4เป็ร�ยบเที่�ยบเพิ��อวิ�ดผ่ลอ�ลกอร�เกณฑ์4เป็ร�ยบเที่�ยบเพิ��อวิ�ดผ่ลอ�ลกอร�ที่ มูวิ#าอ�ลกอร�ที่ มูไหันด�กวิ#าก�นอย#างไร ที่ มูวิ#าอ�ลกอร�ที่ มูไหันด�กวิ#าก�นอย#างไร อ�ลกอร�ที่ มูที่��ด�จะป็ระกอบดวิยอ�ลกอร�ที่ มูที่��ด�จะป็ระกอบดวิยค'ณสมูบ�ต้�ต้#างๆ ด�งต้#อไป็น�)ค'ณสมูบ�ต้�ต้#างๆ ด�งต้#อไป็น�)1. 1. อ�ลกอร�ที่ มูที่��ด�ต้องมู�ควิามูถื�กต้อง อ�ลกอร�ที่ มูที่��ด�ต้องมู�ควิามูถื�กต้อง

((CorrectnessCorrectness)) 2. 2. อ�ลกอร�ที่ มูที่��ด�อ�ลกอร�ที่ มูที่��ด�ต้องง#ายต้#อการอ#าน ต้องง#ายต้#อการอ#าน ((ReadabilityReadability)) 3. 3. อ�ลกอร�ที่ มูที่��ด�ต้องสามูรถืป็ร�บป็ร'งในอนาคต้อ�ลกอร�ที่ มูที่��ด�ต้องสามูรถืป็ร�บป็ร'งในอนาคต้ได ได ((Ease of ModificationEase of Modification ) ) 4. 4. อ�ลกอร�ที่ มูที่��ด�ต้องสามูารถืน�ากล�บมูาใชใหัมู#ได อ�ลกอร�ที่ มูที่��ด�ต้องสามูารถืน�ากล�บมูาใชใหัมู#ได ((ReusabilityReusability)) 5. 5. อ�ลกอร�ที่ มูที่��ด�ต้องมู�อ�ลกอร�ที่ มูที่��ด�ต้องมู�ป็ระส�ที่ธ�ภาพิ ป็ระส�ที่ธ�ภาพิ ((EfficiencyEfficiency))

3131วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 32: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

อ�ลกอร�ที่ มูที่��มู�ป็ระส�ที่ธ�ภาพิจะอ�ลกอร�ที่ มูที่��มู�ป็ระส�ที่ธ�ภาพิจะเก��ยวิข้องก�บป็0จจ�ยต้#อไป็น�)เก��ยวิข้องก�บป็0จจ�ยต้#อไป็น�)

1. 1. เวิลาที่��ใชในการที่�างาน เวิลาที่��ใชในการที่�างาน ((Running TimeRunning Time)) 2. 2. หัน#วิยควิามูจ�าที่��ใช หัน#วิยควิามูจ�าที่��ใช ((Memory Memory

RequirementRequirement)) 3. 3. เวิลาที่��ใชในการคอมูไพิล4เวิลาที่��ใชในการคอมูไพิล4โป็รแกรมู โป็รแกรมู ((Compile TimeCompile Time ) ) 4. 4. เวิลาที่��ใชเวิลาที่��ใชในการต้�ดต้#อส��อสาร ในการต้�ดต้#อส��อสาร ((Communication Time)Communication Time) แน#นอนวิ#า ควิามูเร5วิในการที่�างานย#อมูข้ )นอย�#ก�บแน#นอนวิ#า ควิามูเร5วิในการที่�างานย#อมูข้ )นอย�#ก�บข้นาดอ�นพิ'ต้�ที่��เข้ามูา โดยก�าหันดใหัป็0จจ�ยอ��นๆ คงที่�� ด�งข้นาดอ�นพิ'ต้�ที่��เข้ามูา โดยก�าหันดใหัป็0จจ�ยอ��นๆ คงที่�� ด�งน�)นจ งสร'ป็ไดวิ#า เวิลาในการที่�างานเป็�นฟ0งก4ช�นข้องน�)นจ งสร'ป็ไดวิ#า เวิลาในการที่�างานเป็�นฟ0งก4ช�นข้องอ�นพิ'ต้อ�นพิ'ต้

3232วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Page 33: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มู ป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มู ((Algorithm Efficiency) Algorithm Efficiency)

การพิ�จารณาป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูจากฟ0งก4ช��นที่��ใหัมูา ดวิยการพิ�จารณาการพิ�จารณาป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูจากฟ0งก4ช��นที่��ใหัมูา ดวิยการพิ�จารณาจากจ�านวินอ�ล�เมูนต้4 จากจ�านวินอ�ล�เมูนต้4 ((ElementsElements ) ) ที่��ถื�กโป็รเซัส หัร�อจากจ�านวินรอบการที่�างานที่��ถื�กโป็รเซัส หัร�อจากจ�านวินรอบการที่�างานข้องต้�วิด�าเน�นการน�)นๆ โดยป็ระส�ที่ธ�ข้องอ�ลกอร�ที่ มู เราจะแที่นดวิยฟ0งก4ช�นด�งน�)ข้องต้�วิด�าเน�นการน�)นๆ โดยป็ระส�ที่ธ�ข้องอ�ลกอร�ที่ มู เราจะแที่นดวิยฟ0งก4ช�นด�งน�)

และหัากฟ0งก4ช�นน�)นเป็�นฟ0งก4ช�นแบบเช�งเสน และหัากฟ0งก4ช�นน�)นเป็�นฟ0งก4ช�นแบบเช�งเสน ((LinearLinear ) ) ไมู#มู�การที่�างานในไมู#มู�การที่�างานในล�กษณะล�ป็ ล�กษณะล�ป็ ((LoopLoop ) ) ป็ระส�ที่ธ�ภาพิข้องฟ0งก4ช�นน�)ก5ค�อจ�านวินช'ดค�าส� �งที่��บรรจ'อย�#ป็ระส�ที่ธ�ภาพิข้องฟ0งก4ช�นน�)ก5ค�อจ�านวินช'ดค�าส� �งที่��บรรจ'อย�#ภายในที่�)งหัมูดภายในที่�)งหัมูด

3333วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

f(n ) = efficiency

Page 34: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�ป็แบบเช�งเสน ล�ป็แบบเช�งเสน ((Linear Loop) Linear Loop) ล�กษณะการที่�างานภายในล�ป็เช�งเสน จะมู�ล�กษณะการที่�างานภายในล�ป็เช�งเสน จะมู�การเพิ��มูค#าหัร�อลดค#าภายในล�ป็คงที่�� จนการเพิ��มูค#าหัร�อลดค#าภายในล�ป็คงที่�� จนกระที่��งครบจ�านวินรอบที่��ก�าหันดไวิ โดยจากกระที่��งครบจ�านวินรอบที่��ก�าหันดไวิ โดยจากต้�วิอย#างโป็รแกรมูวิงจรล�ป็ต้#อไป็น�)จะต้�วิอย#างโป็รแกรมูวิงจรล�ป็ต้#อไป็น�)จะเป็�นการเพิ��มูค#าล�ป็ เป็�นการเพิ��มูค#าล�ป็ ((i++i++ ) ) ดวิยการเพิ��มูค#าที่�ดวิยการเพิ��มูค#าที่�ละหัน �งในแต้#ละรอบจนกวิ#าจะครบรอบต้ามูที่��ละหัน �งในแต้#ละรอบจนกวิ#าจะครบรอบต้ามูที่��ก�าหันดก�าหันด

3434วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

For (i = 0. i < 1000; i++ ) application code

Page 35: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�ป็แบบลอการ�ธมู�ค ล�ป็แบบลอการ�ธมู�ค ((Logarithmic Loop) Logarithmic Loop)

ล�กษณะการที่�างานภายในลอการ�ธมู�ค จะมู�การล�กษณะการที่�างานภายในลอการ�ธมู�ค จะมู�การเพิ��มูค#าหัร�อลดค#าสองเที่#าดวิยการค�ณ เพิ��มูค#าหัร�อลดค#าสองเที่#าดวิยการค�ณ ((เพิ��มูค#าสองเพิ��มูค#าสองเที่#าเที่#า ) ) หัร�อการหัาร หัร�อการหัาร ((ลดค#าสองเที่#าลดค#าสองเที่#า ) ) จากต้�วิอย#างต้#อจากต้�วิอย#างต้#อไป็น�)ไป็น�)

กรณ�ที่�)งสอง ผ่ลที่��ไดก5ค�อแต้#ละรอบข้องค#า กรณ�ที่�)งสอง ผ่ลที่��ไดก5ค�อแต้#ละรอบข้องค#า I I จะจะมู�ค#าเพิ��มูเป็�นสองเที่#าจากล�ป็ที่��ค�ณก�น และลดลงมู�ค#าเพิ��มูเป็�นสองเที่#าจากล�ป็ที่��ค�ณก�น และลดลงคร �งหัน �งจากล�ป็การหัารคร �งหัน �งจากล�ป็การหัาร 3535วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส

41222014122201

Multiply LoopsFor (i = 1. i <= 1000; i*=2 )

application code

Divide LoopsFor (i = 1000 i >= 1 ; i /=2 )

application code

Page 36: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�ป็แบบซัอน ล�ป็แบบซัอน ((Nested Loop) Nested Loop) ล�กษณะการที่�างานข้องล�ป็แบบซัอน ก5ค�อภายในล�ป็ล�กษณะการที่�างานข้องล�ป็แบบซัอน ก5ค�อภายในล�ป็จะมู�ล�ป็ซัอนอ�กล�ป็หัน �ง ส�าหัร�บในกรณ�วิ�เคราะหั4ล�ป็ซัอนจะมู�ล�ป็ซัอนอ�กล�ป็หัน �ง ส�าหัร�บในกรณ�วิ�เคราะหั4ล�ป็ซัอนล�ป็ จะต้องพิ�จารณาวิ#ามู�จ�านวินรอบการที่�างานข้องล�ป็ล�ป็ จะต้องพิ�จารณาวิ#ามู�จ�านวินรอบการที่�างานข้องล�ป็เที่#าไรจนกระที่��งเสร5จส�)น ยอดรวิมูที่��ไดก5ค�อผ่ลค�ณที่�)งเที่#าไรจนกระที่��งเสร5จส�)น ยอดรวิมูที่��ไดก5ค�อผ่ลค�ณที่�)งส�)นข้องจ�านวินรอบข้องล�ป็ช�)นใน ส�)นข้องจ�านวินรอบข้องล�ป็ช�)นใน ((inner Loopsinner Loops ) ) ก�บก�บจ�านวินล�ป็ช�)นนอก จ�านวินล�ป็ช�)นนอก ((Outer LoopOuter Loop ) ) โดยผ่ลก5ค�อโดยผ่ลก5ค�อ

ล�ป็แบบซัอนสามูารถืแบ#งเป็�น ล�ป็แบบซัอนสามูารถืแบ#งเป็�น 3 3 ร�ป็แบบย#อยดวิยก�นร�ป็แบบย#อยดวิยก�นด�งน�)ด�งน�)

3636วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Iterations = outer loop iterations x inner loop iterations

Page 37: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�ป็แบบซัอนชน�ดลอการ�ธมู�คเช�งเสน ล�ป็แบบซัอนชน�ดลอการ�ธมู�คเช�งเสน ((Linear Logarithm) Linear Logarithm) ใหัพิ�จารณาช'ดค�าส��งภายในล�ป็ช�)นใน ซั �งมู�การเพิ��มูค#าใหัพิ�จารณาช'ดค�าส��งภายในล�ป็ช�)นใน ซั �งมู�การเพิ��มูค#าเป็�นสองเที่#าดวิยการค�ณก�น ในข้ณะที่��ล�ป็ช�)นนอกจะเป็�นเป็�นสองเที่#าดวิยการค�ณก�น ในข้ณะที่��ล�ป็ช�)นนอกจะเป็�นแบบเช�งเสนที่��มู�การเพิ��มูค#าที่�ละหัน �งในล�กษณะคงที่��แบบเช�งเสนที่��มู�การเพิ��มูค#าที่�ละหัน �งในล�กษณะคงที่��

ด�งน�)นจ�านวินรอบข้องล�ป็ช�)นในก5ค�อ ด�งน�)นจ�านวินรอบข้องล�ป็ช�)นในก5ค�อ log10 log10 น�)นเอง น�)นเอง แต้#ล�ป็ช�)นในถื�กควิบค'มูโดยล�ป็ช�)นนอกอ�กช�)นหัน �ง ด�งน�)นแต้#ล�ป็ช�)นในถื�กควิบค'มูโดยล�ป็ช�)นนอกอ�กช�)นหัน �ง ด�งน�)นส�ต้รที่��ไดจะต้องค�ณดวิยจ�านวินรอบข้องล�ป็ช�)นนอกดวิย ส�ต้รที่��ไดจะต้องค�ณดวิยจ�านวินรอบข้องล�ป็ช�)นนอกดวิย

10 10 ก5จะได ก5จะได 1010log10 log10 เมู��อเข้�ยนฟ0งก4ช��นจะได เมู��อเข้�ยนฟ0งก4ช��นจะได

3737วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

for (i = 0 ; i < 10 ; i++) for (j = 1 ; j <= 10 ; j *= 2) application code

f(n ) = n log n

Page 38: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�ป็แบบซัอนชน�ดก�าล�งล�ป็แบบซัอนชน�ดก�าล�งสอง สอง ((Quadratic) Quadratic)

ล�กษณะการที่�างานข้องล�ป็ชน�ดน�) แต้#ละล�ป็จะที่�าการล�กษณะการที่�างานข้องล�ป็ชน�ดน�) แต้#ละล�ป็จะที่�าการเอ5กซั�ค�วิต้4ในจ�านวินรอบที่��เที่#าก�น จากต้�วิอย#างจะเหั5นไดเอ5กซั�ค�วิต้4ในจ�านวินรอบที่��เที่#าก�น จากต้�วิอย#างจะเหั5นไดวิ#า ล�ป็ช�)นนอกจะที่�างาน วิ#า ล�ป็ช�)นนอกจะที่�างาน 10 10 รอบ ในข้ณะที่��แต้#ละรอบรอบ ในข้ณะที่��แต้#ละรอบการที่�างานข้องล�ป็ช�)นในการที่�างานจ�านวิน การที่�างานข้องล�ป็ช�)นในการที่�างานจ�านวิน 10 10 รอบรอบเช#นก�นเช#นก�น

ด�งน�)นค�าต้อบที่��ไดก5ค�อ ด�งน�)นค�าต้อบที่��ไดก5ค�อ 100 100 ซั �งไดมูาจาก ซั �งไดมูาจาก 1010xx 10 10 ผ่ลล�พิธ4จากการค�ณดวิยก�นระหัวิ#างล�ป็ผ่ลล�พิธ4จากการค�ณดวิยก�นระหัวิ#างล�ป็ช�)นในและล�ป็ช�)นนอก ก5จะไดส�ต้รต้ามูฟ0งก4ช�นด�งน�)ช� )นในและล�ป็ช�)นนอก ก5จะไดส�ต้รต้ามูฟ0งก4ช�นด�งน�)

3838วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

for (i = 0 ; i < 10 ; i++) for (j = 0 ; j < 10 ; j++) application code

f(n ) = n2

Page 39: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ล�ป็แบบซัอนก�าล�งสองชน�ดข้ )นต้#อก�น ล�ป็แบบซัอนก�าล�งสองชน�ดข้ )นต้#อก�น ((Dependent Quadratic) Dependent Quadratic)

ล�กษณะการที่�างานข้องล�ป็ชน�ดน�) จ�านวินรอบการที่�างาล�กษณะการที่�างานข้องล�ป็ชน�ดน�) จ�านวินรอบการที่�างานข้องล�ป็ช�)นในจะข้ )นอย�#ก�บล�ป็ช�)นนอก และจากต้�วิอย#างจะนข้องล�ป็ช�)นในจะข้ )นอย�#ก�บล�ป็ช�)นนอก และจากต้�วิอย#างจะเหั5นไดวิ#าล�ป็ เหั5นไดวิ#าล�ป็ j j ซั �งเป็�นล�ป็ช�)นใน จะมู�รอบการที่�างานที่��ข้ )นอย�#ซั �งเป็�นล�ป็ช�)นใน จะมู�รอบการที่�างานที่��ข้ )นอย�#ก�บ ก�บ i i ซั �งเป็�นล�ป็ช�)นนอกซั �งเป็�นล�ป็ช�)นนอก

โดยจ�านวินรอบการที่�างานในช'ดค�าส��งข้องล�ป็ช�)นในโดยจ�านวินรอบการที่�างานในช'ดค�าส��งข้องล�ป็ช�)นใน

ค�านวิณไดด�งน�)ค�านวิณไดด�งน�)

3939วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

for (i = 0 ; i < 10 ; i++) for (j = 0 ; j < i ; j++) application code

1 + 2 + 3 + . . . + 9 + 10 = 55

Page 40: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

เมู��อด�าเน�นการค�านวิณค#าเฉล��ยข้องรอบการที่�างานภายในล�ป็เมู��อด�าเน�นการค�านวิณค#าเฉล��ยข้องรอบการที่�างานภายในล�ป็ช�)นใน ก5จะมู�ค#าเที่#าก�บ ช�)นใน ก5จะมู�ค#าเที่#าก�บ 55. 55. ((55105510) ) ซั �งผ่ลที่��ไดก5จะมู�ซั �งผ่ลที่��ไดก5จะมู�ค#าต้รงก�บจ�านวินรอบ ค#าต้รงก�บจ�านวินรอบ (1 0 ) (1 0 ) บวิกดวิย บวิกดวิย 1 1 หัารดวิย หัารดวิย 22

ส�าหัร�บจ�านวินรอบการที่�างานที่�)งหัมูด ก5ค�อผ่ลค�ณระหัวิ#างส�าหัร�บจ�านวินรอบการที่�างานที่�)งหัมูด ก5ค�อผ่ลค�ณระหัวิ#างรอบการที่�างานภายในล�ป็ช�)นในก�บรอบการที่�างานข้องล�ป็ช�)นรอบการที่�างานภายในล�ป็ช�)นในก�บรอบการที่�างานข้องล�ป็ช�)นนอกที่��เป็�นไป็ไดต้ามูล�ป็ซัอนก�าล�งสองที่��ข้ )นต้#อก�น ก5จะไดส�ต้รนอกที่��เป็�นไป็ไดต้ามูล�ป็ซัอนก�าล�งสองที่��ข้ )นต้#อก�น ก5จะไดส�ต้รด�งน�)ด�งน�)

4040วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

n+12

n+12

f(n) =

Page 41: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ส�ญล�กษณ4บ�Dกโอ ส�ญล�กษณ4บ�Dกโอ ((Big-Big-O Notation) O Notation) ในการวิ�ดป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มู หัากย ดหัล�กเวิลาการในการวิ�ดป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มู หัากย ดหัล�กเวิลาการที่�างานเป็�นส�าค�ญ คงเป็�นเร��องยากมูากที่��จะที่�าใหัเหั5นถื งควิามูแต้กที่�างานเป็�นส�าค�ญ คงเป็�นเร��องยากมูากที่��จะที่�าใหัเหั5นถื งควิามูแต้กต้#างในเง��อนเวิลา โดยเฉพิาะคอมูพิ�วิเต้อร4ในป็0จจ'บ�นมู�การป็ระมูวิลต้#างในเง��อนเวิลา โดยเฉพิาะคอมูพิ�วิเต้อร4ในป็0จจ'บ�นมู�การป็ระมูวิลผ่ลที่��รวิดเร5วิมูากสามูารถืป็ระมูวิลผ่ลช'ดค�าส��งไดมูากถื ง ผ่ลที่��รวิดเร5วิมูากสามูารถืป็ระมูวิลผ่ลช'ดค�าส��งไดมูากถื ง 1 1 ลานลานค�าส��งภายในหัน �งวิ�นาที่� ด�งน�)นหัากวิ�เคราะหั4อ�ลกอร�ที่ มูสองอ�ลกอร�ค�าส��งภายในหัน �งวิ�นาที่� ด�งน�)นหัากวิ�เคราะหั4อ�ลกอร�ที่ มูสองอ�ลกอร�ที่ มูบนโป็รแกรมูเด�ยวิก�น เน��องจากสองอ�ลกอร�ที่ มูที่�างานดวิยที่ มูบนโป็รแกรมูเด�ยวิก�น เน��องจากสองอ�ลกอร�ที่ มูที่�างานดวิยควิามูเร5วิที่�)งค�# จนกระที่�)งไมู#สามูรถืแยกแยะใหัเหั5นถื งควิามูแต้กควิามูเร5วิที่�)งค�# จนกระที่�)งไมู#สามูรถืแยกแยะใหัเหั5นถื งควิามูแต้กต้#างในดานเวิลาไดเลย เพิราะจะเป็�นส��งที่��วิ�ดยาก และไมู#น#าจะน�ามูาต้#างในดานเวิลาไดเลย เพิราะจะเป็�นส��งที่��วิ�ดยาก และไมู#น#าจะน�ามูาใชเป็�นเกณฑ์4วิ�ดผ่ลอ�ลกอร�ที่ มูเพิ��อหัาป็ระส�ที่ธ�ภาพิแต้#อย#างใดใชเป็�นเกณฑ์4วิ�ดผ่ลอ�ลกอร�ที่ มูเพิ��อหัาป็ระส�ที่ธ�ภาพิแต้#อย#างใด

4141วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 42: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ด�งน�)นป็0จจ�ยหัล�กที่��จะน�ามูาใชเป็�นเกณฑ์4เพิ��อวิ�ดด�งน�)นป็0จจ�ยหัล�กที่��จะน�ามูาใชเป็�นเกณฑ์4เพิ��อวิ�ดป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูน�)น จะพิ�จารณาจาก ป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูน�)น จะพิ�จารณาจาก อ�ต้ราการอ�ต้ราการเต้�บโต้ข้องฟ0งก4ช�น เต้�บโต้ข้องฟ0งก4ช�น ((Growth RatesGrowth Rates)) ดวิยการพิ�จารณาดวิยการพิ�จารณาป็0จจ�ยข้องข้นาดเป็�นส�าค�ญ ด�งน�)นเกณฑ์4การวิ�ดป็ระส�ที่ธ�ภาพิป็0จจ�ยข้องข้นาดเป็�นส�าค�ญ ด�งน�)นเกณฑ์4การวิ�ดป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มู น�)ก5ค�อ ข้องอ�ลกอร�ที่ มู น�)ก5ค�อ ฟ0งก4ช�นบ�Dกโอ ฟ0งก4ช�นบ�Dกโอ ((Big-OBig-O ) ) ที่��มูาจากค�าวิ#า ที่��มูาจากค�าวิ#า Order of Magnitude Order of Magnitude โดยอ�ต้ราการเต้�บโต้ข้องฟ0งก4ช� �นที่��โดยอ�ต้ราการเต้�บโต้ข้องฟ0งก4ช� �นที่��แสดงในร�ป็ที่�� แสดงในร�ป็ที่�� 211. 211. จะเหั5นวิ#าฟ0งก4ช�นลอการ�ที่ มูมู�อ�ต้ราจะเหั5นวิ#าฟ0งก4ช�นลอการ�ที่ มูมู�อ�ต้ราการเต้�บโต้ต้��าที่��ส'ด ในข้ณะที่��ฟ0งก4ช�นเอ5กซั4โพิเนนเซั�ยลและแฟคการเต้�บโต้ต้��าที่��ส'ด ในข้ณะที่��ฟ0งก4ช�นเอ5กซั4โพิเนนเซั�ยลและแฟคต้อเร�ยลมู�อ�ต้ราการเต้�บโต้ส�งส'ด และถื�อวิ#าส�นเป็ล�องที่��ส'ดต้อเร�ยลมู�อ�ต้ราการเต้�บโต้ส�งส'ด และถื�อวิ#าส�นเป็ล�องที่��ส'ด

4242วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 43: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 211 211 ต้ารางแสดงควิามูแต้กต้#างต้ารางแสดงควิามูแต้กต้#างข้องอ�ต้ราการเต้�บโต้ในแต้#ละฟ0งก4ช�นข้องอ�ต้ราการเต้�บโต้ในแต้#ละฟ0งก4ช�น

4343วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222024122202

O(f(n)) f(50)O(log n )

5.64O(n) 50O(n log n )

282O(n2) 2500O(n3) 12,500O(2n)

1,126 x 1015

O(n!)3.0 x 1064

f(50)6.64100664

10,000100,0001.27 x

10309.3 x 10157

Page 44: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

การวิ�ดป็ระส�ที่ธ�ภาพิจ งเก��ยวิข้องก�บฟ0งก4ช�นข้องจ�านวินข้อมู�ล การวิ�ดป็ระส�ที่ธ�ภาพิจ งเก��ยวิข้องก�บฟ0งก4ช�นข้องจ�านวินข้อมู�ล ((ff((n)n) ) ) ซั �งอาจเข้�ยนแที่นดวิย ซั �งอาจเข้�ยนแที่นดวิย T(n)= O(f(n)) T(n)= O(f(n)) ที่��ใชเป็�นฟ0งก4ช�นที่��ใชเป็�นฟ0งก4ช�นแสดงการเป็ล��ยนแป็ลงข้องเวิลาในการที่�างานวิ#าค�ดเป็�นส�ดส#วินแสดงการเป็ล��ยนแป็ลงข้องเวิลาในการที่�างานวิ#าค�ดเป็�นส�ดส#วินเที่#าไรก�บจ�านวินอ�นพิ'ต้ เที่#าไรก�บจ�านวินอ�นพิ'ต้ ใหัพิ�จารณารายละเอ�ยดจาใหัพิ�จารณารายละเอ�ยดจากอ�ลกอร�ที่ มูที่�� กอ�ลกอร�ที่ มูที่�� 23. 23. ต้#อไป็น�) ที่��วิ#าดวิยการค�านวิณ ต้#อไป็น�) ที่��วิ#าดวิยการค�านวิณ T(n) T(n) ดวิยการดวิยการถือดรหั�สค�าส��งในอ�ลกอร�ที่ มูเพิ��อหัาเวิลาในการป็ฏิ�บ�ต้�งานข้องช'ดค�าถือดรหั�สค�าส��งในอ�ลกอร�ที่ มูเพิ��อหัาเวิลาในการป็ฏิ�บ�ต้�งานข้องช'ดค�าส��งที่��แสดงไวิด�งร�ป็ที่�� ส� �งที่��แสดงไวิด�งร�ป็ที่�� 212212

4444วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

1 set sum to zero2 set i to zero3 dowhile i < n

1 add 1 to i2 add score(i) to sum

4 enddo5 compute mean = sum / n

อ�ลกอร�ที่ มู อ�ลกอร�ที่ มู 23 23 ซั�โดโคดการค�านวิณคะแนนเฉล��ยซั�โดโคดการค�านวิณคะแนนเฉล��ย

Page 45: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 212. 212. ต้ารางแสดงเวิลาในการป็ฏิ�บ�ต้�ต้ารางแสดงเวิลาในการป็ฏิ�บ�ต้�งานข้องช'ดค�าส��งในอ�ลกอร�ที่ มูที่�� งานข้องช'ดค�าส��งในอ�ลกอร�ที่ มูที่�� 2323

4545วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222024122202

เลขล�าด�บคำ�าสั่��ง

1

2

3

3.1

3.2

4

5

ร์วมู

เวลาในการ์ที่�างาน

1

1

n + 1

n

n

-

1

3 n + 4

คำ�าอธิ�บาย์ถู�กที่�างาน 1 คำร์�$งถู�กที่�างาน 1 คำร์�$ง

ถู�กที่�างาน n 1+ คำร์�$ง เน��องจัากต�องมู�การ์เปร์�ย์บเที่�ย์บต�วแปร์ i ก�บต�วแปร์ n เพุ��มูอ�ก 1 คำร์�$ง เพุ��อให้�ห้ล�ดจัากล�ป

ถู�กที่�างาน n คำร์�$งถู�กที่�างาน n คำร์�$ง

ไมู)ได�น�ามูาคำ�ด เน��องจัากเป*นต�วป+ดล�ป dowhile

ถู�กที่�างาน n คำร์�$ง

Page 46: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 215 215 ต้ารางแสดงเวิลาในการป็ฏิ�บ�ต้�ต้ารางแสดงเวิลาในการป็ฏิ�บ�ต้�งานข้องช'ดค�าส��งในอ�ลกอร�ที่ มูที่�� งานข้องช'ดค�าส��งในอ�ลกอร�ที่ มูที่�� 23.23.

4646วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222024122202

ปร์ะสั่�ที่ธิ�ภาพุของฟั/งก�ช้�น (Efficiency)

อ�ลกอร์�ที่0มู(Logarithmic)เช้�งเสั่�น (Linear)ลอการ์�ที่0มูเช้�งเสั่�น (Linear Logarithmic)ก�าล�งสั่อง (Quadratic)โพุล�โนเมู�ย์ล(Polynomial)เอ2กซ์�โพุเนนเซ์�ย์ล(Exponentail)แฟัคำตอเร์�ย์ล(Factorial)

บ�4กโอO(f(

n))O(log

n )O(n)O(n

log n )O(n2)

O(n3)

O(2n)

O(n!)

จั�านวนร์อบการ์ที่�างาน(Iteration)14

10,000140,00010,0002

10,000k

210,000

10,000!

เวลาที่��ใช้�ในการ์ที่�างานโดย์ปร์ะมูาณ (Running time)

ร์ะด�บไมูโคำร์ว�นาที่�ร์ะด�บว�นาที่�ร์ะด�บว�นาที่�ร์ะด�บนาที่�

ร์ะด�บช้��วโมูงมูากจันย์ากต)อการ์

ร์ะบ�ได�ช้�ดเจันมูากจันย์ากต)อการ์ร์ะบ�ได�ช้�ดเจัน

Page 47: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 216 216 กราฟแสดงควิามูกราฟแสดงควิามูส�มูพิ�นธ4ระหัวิ#างจ�านวินข้อมู�ลก�บเวิลาในส�มูพิ�นธ4ระหัวิ#างจ�านวินข้อมู�ลก�บเวิลาในการที่�างานข้องฟ0งก4ช�นต้#างๆ การที่�างานข้องฟ0งก4ช�นต้#างๆ (Big-O (Big-O Range)Range) 4747วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส

41222024122202

n3

O(n)

Page 48: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

จ งสร'ป็ไดวิ#า ควิรเล�อกอ�ลกอร�ที่ มูที่��มู�อ�ต้ราการจ งสร'ป็ไดวิ#า ควิรเล�อกอ�ลกอร�ที่ มูที่��มู�อ�ต้ราการเต้�บโต้ต้��าที่��ส'ดเมู��อป็ร�มูาณอ�นพิ'ต้ข้องข้อมู�ลจ�านวินเต้�บโต้ต้��าที่��ส'ดเมู��อป็ร�มูาณอ�นพิ'ต้ข้องข้อมู�ลจ�านวินมูาก เช#น อ�ลกอร�ที่ มู มูาก เช#น อ�ลกอร�ที่ มู O(n) O(n) แที่นที่��จะเล�อกแที่นที่��จะเล�อก O(nO(n22) ) ด�งน�)นแนวิที่างในการวิ�ดผ่ลป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ด�งน�)นแนวิที่างในการวิ�ดผ่ลป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูจะวิ�ดจากที่ มูจะวิ�ดจาก1. 1. ข้นาดข้องอ�นพิ'ต้ข้นาดข้องอ�นพิ'ต้ 2. 2. ใหัละเลยค#าคงที่��ที่��อย�#ในสภาพิแวิดลอมูน�)นใหัละเลยค#าคงที่��ที่��อย�#ในสภาพิแวิดลอมูน�)น

3. 3. สนใจเฉพิาะกรณ�เลวิรายส'ดเที่#าน�)น สนใจเฉพิาะกรณ�เลวิรายส'ดเที่#าน�)น ((Worst-caseWorst-case)) 4. 4. มูองข้ามูข้นาดข้องมูองข้ามูข้นาดข้องอ�นพิ'ต้ที่��มู�จ�านวินนอยๆอ�นพิ'ต้ที่��มู�จ�านวินนอยๆ

4848วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Page 49: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ต้�วิอย#างการวิ�เคราะหั4บ�Dกโอ ต้�วิอย#างการวิ�เคราะหั4บ�Dกโอ ((Big-O Big-O Analysis Example) Analysis Example)

การน�าสองแมูที่ร�กซั4มูาบวิกก�นน�) จะด�าเน�นการการน�าสองแมูที่ร�กซั4มูาบวิกก�นน�) จะด�าเน�นการดวิยการน�าอ�ล�เมูนต้4ที่��ต้รงก�นระหัวิ#างแมูที่ร�กซั4แรดวิยการน�าอ�ล�เมูนต้4ที่��ต้รงก�นระหัวิ#างแมูที่ร�กซั4แรกก�บแมูที่ร�กซั4ที่��สองมูารวิมูก�น โดยผ่ลล�พิธ4ที่��ไดจะเก5บกก�บแมูที่ร�กซั4ที่��สองมูารวิมูก�น โดยผ่ลล�พิธ4ที่��ไดจะเก5บไวิในแมูที่ร�กซั4ที่��สามู หัล�กการด�งกล#าวิจะเป็�นไป็ต้ามูวิ�ธ�ไวิในแมูที่ร�กซั4ที่��สามู หัล�กการด�งกล#าวิจะเป็�นไป็ต้ามูวิ�ธ�การด�งร�ป็ที่�� การด�งร�ป็ที่�� 217 217 ในข้ณะที่��อ�ลกอร�ที่ มูที่�� ในข้ณะที่��อ�ลกอร�ที่ มูที่�� 24 24

ค�อซั�โดโคดที่��แสดงถื งการบวิกข้องแมูที่ร�กซั4น�)ค�อซั�โดโคดที่��แสดงถื งการบวิกข้องแมูที่ร�กซั4น�)

4949วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Page 50: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 217. 217. แสดงวิ�ธ�กาแสดงวิ�ธ�การบวิกแมูที่ร�กซั4รบวิกแมูที่ร�กซั4

5050วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222024122202

4 2 1

0-34

5 6 2

+6 1 7

3 2-1

4 6 2

=

1

03 6

3-13

91

24

Algorithm addMatrix (matrix1, matrix1, size, matrix3)Add matrix1 to matrix2 and place results in matrix3 pre matrix1 and matrix2 have data size is number of columns or rows in matrix post matrices added-result in matrax3 1loop (not end of row) 1 loop (not end of column) 1 add matrix1 and matrix2 cells 2 store sum in matrix3 2 end loop•end loopend addMatrix

อ�ลกอร�ที่ มูที่�� อ�ลกอร�ที่ มูที่�� 24. 24. การบวิกการบวิกข้องสองแมูที่ร�กซั4ข้องสองแมูที่ร�กซั4

Page 51: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

จากอ�ลกอร�ที่ มูที่�� จากอ�ลกอร�ที่ มูที่�� 24. 24. น�)เอง จะเหั5นวิ#าน�)เอง จะเหั5นวิ#าในแต้#ละอ�ล�เมูนต้4ข้องแถืวิ ในแต้#ละอ�ล�เมูนต้4ข้องแถืวิ ((ล�าด�บ ล�าด�บ 1) 1) จะมู�จะมู�การน�าไป็บวิกก�บอ�ล�เมูนต้4ที่�)งหัมูดในในหัมูดการน�าไป็บวิกก�บอ�ล�เมูนต้4ที่�)งหัมูดในในหัมูดในคอล�มูน4 ในคอล�มูน4 ((เลข้ล�าด�บ เลข้ล�าด�บ 11 11 ซั �งจ�ดเป็�นร�ป็ซั �งจ�ดเป็�นร�ป็ก�าล�งสอง ก�าล�งสอง ((Quadratic LoopQuadratic Loop ) ) ด�งน�)นด�งน�)นป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูน�)ก5ค�อ ป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูน�)ก5ค�อ O(sizeO(size22) ) หัร�อ หัร�อ O(nO(n22))

5151วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

Page 52: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

เมู��อมู�การน�าสองแมูที่ร�กซั4มูาค�ณก�น จะต้องน�าแต้#เมู��อมู�การน�าสองแมูที่ร�กซั4มูาค�ณก�น จะต้องน�าแต้#ละอ�ล�เมูนต้4ในแถืวิข้องแมูที่ร�กซั4ต้�วิแรกมูาค�ณก�บต้�าละอ�ล�เมูนต้4ในแถืวิข้องแมูที่ร�กซั4ต้�วิแรกมูาค�ณก�บต้�าแหัน#งอ�ล�เมูนต้4ต้รงก�นในคอล�มูน4ข้องแมูที่ร�กซั4ต้�วิที่��แหัน#งอ�ล�เมูนต้4ต้รงก�นในคอล�มูน4ข้องแมูที่ร�กซั4ต้�วิที่��สอง ผ่ลล�พิธ4ที่��ไดจากผ่ลค�ณในแต้#ละต้�าแหัน#งจะน�ามูาบสอง ผ่ลล�พิธ4ที่��ไดจากผ่ลค�ณในแต้#ละต้�าแหัน#งจะน�ามูาบวิกรวิมูก�น ซั �งเป็�นไป็ต้ามูหัล�กการด�งน�)วิกรวิมูก�น ซั �งเป็�นไป็ต้ามูหัล�กการด�งน�)

5252วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส 41222014122201

matrix3 [row, col]= + matrix1[row, 0] x matrix2[0, col]+ matrix1[row, 1] x matrix2[1, col]+ matrix1[row, 2] x matrix2[2, col]

. . . + matrix1[r, s-1] x matrix2[s-1, col]

Where s = size of matrix

Page 53: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

ร�ป็ที่�� ร�ป็ที่�� 218 218 แสดงวิ�ธ�การค�ณแสดงวิ�ธ�การค�ณแมูที่ร�กซั4แมูที่ร�กซั4 5353วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�ส รหั�ส

41222024122202

4 2 1

0-34

5 6 2

(a) (4x6)+(2x3)+(1x4)= 34

6 1 7

3 2-1

4 6 2

r0, c0 34

4 2 1

0-34

5 6 2

(b) (4x1)+(2x2)+(1x6)= 14

6 1 7

3 2-1

4 6 2

r0, c114

4 2 1

0-34

5 6 2

(c) (0x7)+((-3)x(-1))+(4x2)= 11

6 1 7

3 2-1

4 6 2

1

1

r1, c2

Page 54: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

จากอ�ลกอร�ที่ มูที่�� จากอ�ลกอร�ที่ มูที่�� 25 25 ค�อซั�โดโคดการค�อซั�โดโคดการค�ณแมูที่ร�กซั4ด�งกล#าวิ จะเหั5นไดวิ#าอ�ลกอร�ที่ มูค�ณแมูที่ร�กซั4ด�งกล#าวิ จะเหั5นไดวิ#าอ�ลกอร�ที่ มูการหัาผ่ลค�ณข้องแมูที่ร�กซั4น�)จะมู�ล�ป็ซัอนก�นการหัาผ่ลค�ณข้องแมูที่ร�กซั4น�)จะมู�ล�ป็ซัอนก�นอย�# อย�# 3 3 ล�ป็ดวิยก�น โดยเป็�นล�ป็ชน�ดล�ป็ดวิยก�น โดยเป็�นล�ป็ชน�ดล�กบาศัก4 ล�กบาศัก4 ((Cubic LoopCubic Loop ) ) ด�งน�)นด�งน�)นป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูน�)ก5ค�อ ป็ระส�ที่ธ�ภาพิข้องอ�ลกอร�ที่ มูน�)ก5ค�อ O(sizeO(size33) ) หัร�อ หัร�อ O(nO(n33))

5454วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201

Page 55: บทที่ 2 ความรู้เบื้องต้น     ( Introduction )

The End The End

Lesson 2 Lesson 2

5555วิ�ชาโครงสรางข้อมู�ล วิ�ชาโครงสรางข้อมู�ล ((Data Structure) Data Structure) รหั�สรหั�ส 41222014122201