SlideShare ist ein Scribd-Unternehmen logo
1 von 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
асуух хэрэггүй!!!

Weitere ähnliche Inhalte

Was ist angesagt?

U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-4-zasah
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasah
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
Badral Khurelbaatar
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
Enkh Gvnj
 
Lec2 c++helnii undeslel
Lec2 c++helnii undeslelLec2 c++helnii undeslel
Lec2 c++helnii undeslel
Turuu Tsogt
 

Was ist angesagt? (20)

U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
 
U.cs101 алгоритм программчлал-4-zasah
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasah
 
Лекц №11
Лекц №11Лекц №11
Лекц №11
 
Лекц 9(Заагч)
Лекц 9(Заагч)Лекц 9(Заагч)
Лекц 9(Заагч)
 
массив
массивмассив
массив
 
Programchlaliin c hel
Programchlaliin c helProgramchlaliin c hel
Programchlaliin c hel
 
C++
C++C++
C++
 
Програмчлалын хэл
Програмчлалын хэлПрограмчлалын хэл
Програмчлалын хэл
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
U.cs101 lection-8
U.cs101  lection-8 U.cs101  lection-8
U.cs101 lection-8
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
 
Smallbasic
SmallbasicSmallbasic
Smallbasic
 
Fast type mon program
Fast type mon programFast type mon program
Fast type mon program
 
мэдээллийн технологи 1 хичээлийн хөтөлбөр
мэдээллийн технологи 1 хичээлийн хөтөлбөрмэдээллийн технологи 1 хичээлийн хөтөлбөр
мэдээллийн технологи 1 хичээлийн хөтөлбөр
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
 
Lec2 c++helnii undeslel
Lec2 c++helnii undeslelLec2 c++helnii undeslel
Lec2 c++helnii undeslel
 
U.cs101 lecture 6
U.cs101   lecture 6U.cs101   lecture 6
U.cs101 lecture 6
 

Ähnlich wie Өгөгдлийн бүтэц 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
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм 8
алгоритм 8алгоритм 8
алгоритм 8
 
энхсаран цахим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
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 

Mehr von International Ulaanbaatar University

Mehr von 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 асуух хэрэггүй!!!