SlideShare a Scribd company logo
1 of 18
LOGOЛекц №1
Алгоритмын шинжилгээ
Хичээлийн агуулга
Алгоритмын шинжилгээ
 Аливаа алгоритмыг ямар нэг програмчлалын
хэлэнд нэвтрүүлэлгүйгээр түүний ажиллах
хугацааг тодорхойлоход алгоритмын
шинжилгээний гол зорилго оршино.
 Алгоритмыг шинжлэх гол хоёр шинжүүр нь:
 Алгоритмд шаардагдах зай
 Алгоритмд шаардагдах хугацаа
Алгоритмын шинжилгээ
Алгоритмд шаардагдах зай нь
тухайн алгоритм ажиллах үед
шаардагдах санах төхөөрөмжүүдийн
хэмжээгээр тодорхойлогдоно.
Алгоритмд шаардагдах хугацаа нь
алгоритмд гүйцэтгэгдэх үйлдлийн
тоогоор тодорхойлогдоно.
Алгоритмын шинжилгээ
 Аливаа асуудлуудыг шийдвэрлэх олон арга байдаг.
Алгоритмын шинжилгээ
 Дээрх зураг дээр таныг Joe’s Diner руу аваачих
хоёр зам байна.
 Энэ хоёр зам ижил биш ч, зорилгын хувьд
хоёулаа зөв.
 Хэрвээ тодорхой шаардлага хангасан замыг
хүсвэл аль нэг шийдэл нь бусдаасаа илүү дээр
байж магадгүй.
 Жишээ шаардлагууд:
• Joe’s Diner руу хамгийн хурдан очих зам нь аль вэ?
• Joe’s Diner руу очих хамгийн эвтэйхэн зам нь аль вэ?
• Аль замаар нь явах дуртай вэ?
Алгоритмын шинжилгээ
 Ижилхэн үйлдэл гүйцэтгэх хоёр алгоритмоос
сонголт хийхдээ програмын тухайн хэсгийн
шаардлагаас хамааран сонгодог
 Хэрвээ тодорхой шаардлага байхгүй бол тухайн
програм зохиогчийн өөрийнх нь хэв загвар дээр
үндэслэж болно.
Алгоритмын шинжилгээ
 Алгоритмуудаас сонголт хийх нь ихэвчлэн үр
ашгийн асуудалруу шилждэг.
 Аль алгоритмын тооцоолох хугацаа нь хамгийн
бага байна вэ?
 Аль алгоритм нь хамгийн бага хөдөлмөрөөр
ажиллах вэ?
Алгоритмын шинжилгээ
 Алгоритмыг шинжлэх шинжүүр
1. Алгоритмын код хэр энгийн, хялбар байх
2. Ажиллах хугацаа хамгийн бага байх
 Алгоритмыг шинжлэх үзүүлэлт
1. Биелүүлэх команд болон алхмын тоо
2. Өгөгдлийн хэмжээ
 Өгөгдлийн хэмжээнээс хамааран алгоритмын
ажиллах хугацааг тодорхойлохдоо Big-O
тэмдэглэгээ буюу ач холбогдолын асуудал гэж
нэрлэгддэг математик тэмдэглэгээг ашиглан
илэрхийлнэ.
Алгоритмын шинжилгээ – Big-O тэмдэглэгээ
 Big-O тэмдэглэгээ арга нь аливаа асуудлын
хэмжээнээс хамааран хамгийн хурдан өсдөг
функцын томъёогоор тооцоолох хугацааг
илэрхийлдэг.
 Ө.х. Тогтмол коэфциентыг орхин, оролтын
өгөгдлийн хэмжээний хувьд алгоритмын
ажиллах хугацааг хамгийн муу тохиолдолд
тодорхойлно.
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Жишээ:
 f(N) = N4 + 100N2 + 10N + 50 функцийн хувьд Big-O
тэмдэглэгээ нь O(N4) болно.
 Учир нь N-ийн хүрэлцээтэй хамгийн их утга нь N4
байна. Тиймээс 100N2 , 10N , 50 утгууд нь
тооцоолох хугацаанд нөлөөлж чадахгүй.
 N гэдэг нь тухайн асуудлын өгөгдлийн хэмжээ
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Ерөнхий Big-O тэмдэглэгээнүүд:
O(1) буюу хязгаартай хугацаа.
 Тухайн ажлын үр дүн нь тухайн асуудлын
хэмжээнээс хамаарахгүйгээр тогтмолоор
тодорхойлогддог.
Жишээ:
 N элемэнттэй массивын i-р элемэнтэд утга
олгоход O(1) байна. Учир нь массивын
элемэнтэд түүний индексээр нь шууд хандаж
болдог.
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Ерөнхий Big-O тэмдэглэгээнүүд:
O(log2N) буюу логарифм хугацаа.
 Тухайн ажлын үр дүн нь тухайн асуудлын
хэмжээний логарифмаас хамаарна.
Жишээ:
 Эрэмбэлэгдсэн элемэнттэй жагсаалтаас
хоёртын хайлтын аргыг ашиглан нэг элемэнт
хайх алгоритм нь O(log2N) байна. ).
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Ерөнхий Big-O тэмдэглэгээнүүд:
O(N) буюу шугаман хугацаа.
 Тухайн ажлын үр дүн нь ойролцоогоор тухайн
асуудлын тогтмол үе бүхий хэмжээгээр
тодорхойлогдоно.
Жишээ:
 N элемэнттэй жагсаалтын бүх элемэнтүүдийг
хэвлэхэд O(N) байна
 Эрэмбэлэгдээгүй элемэнттэй жагсаалтаас нэг
элемэнт хайхад O(N) байна.
 Учир нь элемэнт бүрт дараалан хандана.
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Ерөнхий Big-O тэмдэглэгээнүүд:
O(N log2N ) буюу N log2N хугацаа.
 Энэ төрлийн алгоритм нь стандартаараа
логарифм алгоритмыг N удаа хэрэгжүүлснээр
тодорхойлогдоно.
Жишээ:
 QuickSort, MergeSort, HeapSort гэх мэтийн
хамгийн сайн эрэмбэлэлтийн алгоритмууд нь
O(N log2N) хугацаанд эрэмблэгдээгүй
жагсаалтыг эрэмбэлэгдсэн жагсаалт болгоно.
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Ерөнхий Big-O тэмдэглэгээнүүд:
O(N2) буюу квадрат хугацаа.
 Энэ төрлийн алгоритм нь стандартаараа
шугаман алгоритмыг N удаа хэрэгжүүлснээр
тодорхойлогдоно.
Жишээ:
 Хялбар эрэмбэлэлтийн алгоритмууд нь O(N2)
байна.
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Ерөнхий Big-O тэмдэглэгээнүүд:
O(N3) буюу куб хугацаа.
Жишээ:
 Бүхэл тоон элемэнттэй 3 хэмжээст хүснэгтийг
элемэнтүүдийг нэмэхэд O(N3) хугацаа
шаардагдана.
O(2N) буюу экспоненциаль хугацаа.
Жишээ:
 Ийм алгоритмууд нь өндөр өртөгтөй байдаг.
Алгоритмын шинжилгээ - Big-O тэмдэглэгээ
Өсөлтийн үзүүлэлтийн харьцуулалт:
N log2N N log2N N2
N3
2N
1 0 1 1 1 2
2 1 2 4 8 4
4 2 8 16 64 16
8 3 24 64 512 256
16 4 64 256 4,096 65,536
32 5 160 1,024 32,768 4,294,967,296
64 6 384 4,096 262,114
супер компьютерийн
чадлаар нэг сар орчим
128 7 896 16,384 2,097,152 ойролцоогоор 6 сая
жил
256 8 2,048 65,536 16,777,21
6
асуух хэрэггүй!!!

More Related Content

What's hot

9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
Day 1 database
Day 1   databaseDay 1   database
Day 1 databaseETC
 
салаалсан алгоритм
салаалсан алгоритмсалаалсан алгоритм
салаалсан алгоритмBurotino Iosifob
 
Салаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудСалаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудБаярсайхан Л
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7Badral Khurelbaatar
 
алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэсGombo Tumuruu
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
 
алгоритмын бодлогууд
алгоритмын бодлогуудалгоритмын бодлогууд
алгоритмын бодлогуудRenchindorj Monkhzul
 
Lec3 c++operator
Lec3 c++operatorLec3 c++operator
Lec3 c++operatorTuruu Tsogt
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsTuruu Tsogt
 
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 

What's hot (20)

9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
Day 1 database
Day 1   databaseDay 1   database
Day 1 database
 
массив
массивмассив
массив
 
салаалсан алгоритм
салаалсан алгоритмсалаалсан алгоритм
салаалсан алгоритм
 
Салаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудСалаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогууд
 
Лекц 3 (Давталт)
Лекц 3 (Давталт)Лекц 3 (Давталт)
Лекц 3 (Давталт)
 
C
CC
C
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэс
 
алгоритм 8
алгоритм 8алгоритм 8
алгоритм 8
 
Lecture3 охп удамшил
Lecture3 охп удамшилLecture3 охп удамшил
Lecture3 охп удамшил
 
алгоритм 10 р анги
алгоритм 10 р ангиалгоритм 10 р анги
алгоритм 10 р анги
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
алгоритмын бодлогууд
алгоритмын бодлогуудалгоритмын бодлогууд
алгоритмын бодлогууд
 
Lec3 c++operator
Lec3 c++operatorLec3 c++operator
Lec3 c++operator
 
Matematic logic 2006 yu.namsrai
Matematic logic 2006 yu.namsraiMatematic logic 2006 yu.namsrai
Matematic logic 2006 yu.namsrai
 
IT-1
IT-1IT-1
IT-1
 
Лекц 10: (Рекурс)
Лекц 10: (Рекурс)Лекц 10: (Рекурс)
Лекц 10: (Рекурс)
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
 
алгоритм
алгоритмалгоритм
алгоритм
 

Similar to Өгөгдлийн бүтэц 1

Similar to Өгөгдлийн бүтэц 1 (20)

Dsi lec1
Dsi lec1Dsi lec1
Dsi lec1
 
9 salaalsan algkritm (1)
9 salaalsan algkritm (1)9 salaalsan algkritm (1)
9 salaalsan algkritm (1)
 
5 algorithm
5 algorithm5 algorithm
5 algorithm
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Print
PrintPrint
Print
 
энхсаран цахим1
энхсаран цахим1энхсаран цахим1
энхсаран цахим1
 
Pp Lect10 11
Pp Lect10 11Pp Lect10 11
Pp Lect10 11
 
Algoritm
AlgoritmAlgoritm
Algoritm
 
алг лаб3
алг лаб3алг лаб3
алг лаб3
 
6 shugaman
6 shugaman6 shugaman
6 shugaman
 
Pp Lect9 10 1
Pp Lect9 10 1Pp Lect9 10 1
Pp Lect9 10 1
 
Алгоритм
АлгоритмАлгоритм
Алгоритм
 
Excel
ExcelExcel
Excel
 
Excel
ExcelExcel
Excel
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
U.IT101 Lab 9
U.IT101 Lab 9U.IT101 Lab 9
U.IT101 Lab 9
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)
 

More from International Ulaanbaatar University (20)

Lec8
Lec8 Lec8
Lec8
 
Lec7
Lec7 Lec7
Lec7
 
Lec5 6
Lec5 6 Lec5 6
Lec5 6
 
Lec4
Lec4 Lec4
Lec4
 
Lec3
Lec3 Lec3
Lec3
 
Lec2
Lec2 Lec2
Lec2
 
Lec1
Lec1 Lec1
Lec1
 
Визуаль програмчлал бие даалт
Визуаль програмчлал бие даалтВизуаль програмчлал бие даалт
Визуаль програмчлал бие даалт
 
ОХШЗ - Бие Даалт
ОХШЗ - Бие ДаалтОХШЗ - Бие Даалт
ОХШЗ - Бие Даалт
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Ood lesson11 sequence
Ood lesson11 sequenceOod lesson11 sequence
Ood lesson11 sequence
 
Ood lesson10 statechart
Ood lesson10 statechartOod lesson10 statechart
Ood lesson10 statechart
 
Ood lesson9 activity
Ood lesson9 activityOod lesson9 activity
Ood lesson9 activity
 
Ood lesson7,8 class
Ood lesson7,8 classOod lesson7,8 class
Ood lesson7,8 class
 
Ood lesson6 class
Ood lesson6 classOod lesson6 class
Ood lesson6 class
 
Ood lesson5
Ood lesson5Ood lesson5
Ood lesson5
 
Ood lesson4
Ood lesson4Ood lesson4
Ood lesson4
 
Ood lesson3
Ood lesson3Ood lesson3
Ood lesson3
 
Ood lesson2
Ood lesson2Ood lesson2
Ood lesson2
 
Ood lesson1
Ood lesson1Ood lesson1
Ood lesson1
 

Өгөгдлийн бүтэц 1

  • 3. Алгоритмын шинжилгээ  Аливаа алгоритмыг ямар нэг програмчлалын хэлэнд нэвтрүүлэлгүйгээр түүний ажиллах хугацааг тодорхойлоход алгоритмын шинжилгээний гол зорилго оршино.  Алгоритмыг шинжлэх гол хоёр шинжүүр нь:  Алгоритмд шаардагдах зай  Алгоритмд шаардагдах хугацаа
  • 4. Алгоритмын шинжилгээ Алгоритмд шаардагдах зай нь тухайн алгоритм ажиллах үед шаардагдах санах төхөөрөмжүүдийн хэмжээгээр тодорхойлогдоно. Алгоритмд шаардагдах хугацаа нь алгоритмд гүйцэтгэгдэх үйлдлийн тоогоор тодорхойлогдоно.
  • 5. Алгоритмын шинжилгээ  Аливаа асуудлуудыг шийдвэрлэх олон арга байдаг.
  • 6. Алгоритмын шинжилгээ  Дээрх зураг дээр таныг Joe’s Diner руу аваачих хоёр зам байна.  Энэ хоёр зам ижил биш ч, зорилгын хувьд хоёулаа зөв.  Хэрвээ тодорхой шаардлага хангасан замыг хүсвэл аль нэг шийдэл нь бусдаасаа илүү дээр байж магадгүй.  Жишээ шаардлагууд: • Joe’s Diner руу хамгийн хурдан очих зам нь аль вэ? • Joe’s Diner руу очих хамгийн эвтэйхэн зам нь аль вэ? • Аль замаар нь явах дуртай вэ?
  • 7. Алгоритмын шинжилгээ  Ижилхэн үйлдэл гүйцэтгэх хоёр алгоритмоос сонголт хийхдээ програмын тухайн хэсгийн шаардлагаас хамааран сонгодог  Хэрвээ тодорхой шаардлага байхгүй бол тухайн програм зохиогчийн өөрийнх нь хэв загвар дээр үндэслэж болно.
  • 8. Алгоритмын шинжилгээ  Алгоритмуудаас сонголт хийх нь ихэвчлэн үр ашгийн асуудалруу шилждэг.  Аль алгоритмын тооцоолох хугацаа нь хамгийн бага байна вэ?  Аль алгоритм нь хамгийн бага хөдөлмөрөөр ажиллах вэ?
  • 9. Алгоритмын шинжилгээ  Алгоритмыг шинжлэх шинжүүр 1. Алгоритмын код хэр энгийн, хялбар байх 2. Ажиллах хугацаа хамгийн бага байх  Алгоритмыг шинжлэх үзүүлэлт 1. Биелүүлэх команд болон алхмын тоо 2. Өгөгдлийн хэмжээ  Өгөгдлийн хэмжээнээс хамааран алгоритмын ажиллах хугацааг тодорхойлохдоо Big-O тэмдэглэгээ буюу ач холбогдолын асуудал гэж нэрлэгддэг математик тэмдэглэгээг ашиглан илэрхийлнэ.
  • 10. Алгоритмын шинжилгээ – Big-O тэмдэглэгээ  Big-O тэмдэглэгээ арга нь аливаа асуудлын хэмжээнээс хамааран хамгийн хурдан өсдөг функцын томъёогоор тооцоолох хугацааг илэрхийлдэг.  Ө.х. Тогтмол коэфциентыг орхин, оролтын өгөгдлийн хэмжээний хувьд алгоритмын ажиллах хугацааг хамгийн муу тохиолдолд тодорхойлно.
  • 11. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Жишээ:  f(N) = N4 + 100N2 + 10N + 50 функцийн хувьд Big-O тэмдэглэгээ нь O(N4) болно.  Учир нь N-ийн хүрэлцээтэй хамгийн их утга нь N4 байна. Тиймээс 100N2 , 10N , 50 утгууд нь тооцоолох хугацаанд нөлөөлж чадахгүй.  N гэдэг нь тухайн асуудлын өгөгдлийн хэмжээ
  • 12. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Ерөнхий Big-O тэмдэглэгээнүүд: O(1) буюу хязгаартай хугацаа.  Тухайн ажлын үр дүн нь тухайн асуудлын хэмжээнээс хамаарахгүйгээр тогтмолоор тодорхойлогддог. Жишээ:  N элемэнттэй массивын i-р элемэнтэд утга олгоход O(1) байна. Учир нь массивын элемэнтэд түүний индексээр нь шууд хандаж болдог.
  • 13. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Ерөнхий Big-O тэмдэглэгээнүүд: O(log2N) буюу логарифм хугацаа.  Тухайн ажлын үр дүн нь тухайн асуудлын хэмжээний логарифмаас хамаарна. Жишээ:  Эрэмбэлэгдсэн элемэнттэй жагсаалтаас хоёртын хайлтын аргыг ашиглан нэг элемэнт хайх алгоритм нь O(log2N) байна. ).
  • 14. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Ерөнхий Big-O тэмдэглэгээнүүд: O(N) буюу шугаман хугацаа.  Тухайн ажлын үр дүн нь ойролцоогоор тухайн асуудлын тогтмол үе бүхий хэмжээгээр тодорхойлогдоно. Жишээ:  N элемэнттэй жагсаалтын бүх элемэнтүүдийг хэвлэхэд O(N) байна  Эрэмбэлэгдээгүй элемэнттэй жагсаалтаас нэг элемэнт хайхад O(N) байна.  Учир нь элемэнт бүрт дараалан хандана.
  • 15. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Ерөнхий Big-O тэмдэглэгээнүүд: O(N log2N ) буюу N log2N хугацаа.  Энэ төрлийн алгоритм нь стандартаараа логарифм алгоритмыг N удаа хэрэгжүүлснээр тодорхойлогдоно. Жишээ:  QuickSort, MergeSort, HeapSort гэх мэтийн хамгийн сайн эрэмбэлэлтийн алгоритмууд нь O(N log2N) хугацаанд эрэмблэгдээгүй жагсаалтыг эрэмбэлэгдсэн жагсаалт болгоно.
  • 16. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Ерөнхий Big-O тэмдэглэгээнүүд: O(N2) буюу квадрат хугацаа.  Энэ төрлийн алгоритм нь стандартаараа шугаман алгоритмыг N удаа хэрэгжүүлснээр тодорхойлогдоно. Жишээ:  Хялбар эрэмбэлэлтийн алгоритмууд нь O(N2) байна.
  • 17. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Ерөнхий Big-O тэмдэглэгээнүүд: O(N3) буюу куб хугацаа. Жишээ:  Бүхэл тоон элемэнттэй 3 хэмжээст хүснэгтийг элемэнтүүдийг нэмэхэд O(N3) хугацаа шаардагдана. O(2N) буюу экспоненциаль хугацаа. Жишээ:  Ийм алгоритмууд нь өндөр өртөгтөй байдаг.
  • 18. Алгоритмын шинжилгээ - Big-O тэмдэглэгээ Өсөлтийн үзүүлэлтийн харьцуулалт: N log2N N log2N N2 N3 2N 1 0 1 1 1 2 2 1 2 4 8 4 4 2 8 16 64 16 8 3 24 64 512 256 16 4 64 256 4,096 65,536 32 5 160 1,024 32,768 4,294,967,296 64 6 384 4,096 262,114 супер компьютерийн чадлаар нэг сар орчим 128 7 896 16,384 2,097,152 ойролцоогоор 6 сая жил 256 8 2,048 65,536 16,777,21 6 асуух хэрэггүй!!!