Weitere ähnliche Inhalte
Ähnlich wie Өгөгдлийн бүтэц 1 (20)
Mehr von International Ulaanbaatar University (20)
Өгөгдлийн бүтэц 1
- 3. Алгоритмын шинжилгээ
Аливаа алгоритмыг ямар нэг програмчлалын
хэлэнд нэвтрүүлэлгүйгээр түүний ажиллах
хугацааг тодорхойлоход алгоритмын
шинжилгээний гол зорилго оршино.
Алгоритмыг шинжлэх гол хоёр шинжүүр нь:
Алгоритмд шаардагдах зай
Алгоритмд шаардагдах хугацаа
- 4. Алгоритмын шинжилгээ
Алгоритмд шаардагдах зай нь
тухайн алгоритм ажиллах үед
шаардагдах санах төхөөрөмжүүдийн
хэмжээгээр тодорхойлогдоно.
Алгоритмд шаардагдах хугацаа нь
алгоритмд гүйцэтгэгдэх үйлдлийн
тоогоор тодорхойлогдоно.
- 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
асуух хэрэггүй!!!