Upload
doquynh
View
230
Download
0
Embed Size (px)
Citation preview
Perancangan dan
Analisis AlgoritmaIF184401
Rully Soelaiman
Departemen Informatika
Fakultas Teknologi Informasi dan Komunikasi
Institut Teknologi Sepuluh Nopember
1. Peserta mata kuliah dapat memodelkan persoalan komputasi secara algoritmik.
2. Peserta mata kuliah dapat menerapkan rancangan algoritma yang optimal terhadap suatu model persoalan komputasi tertentu.
3. Peserta mata kuliah mampu menganalisis rancangan algoritma yang meliputi aspek kebenaran dan kompleksitas.
4. Peserta mata kuliah mampu mengimplemen-tasikan rancangan algoritma dengan melibatkan struktur data yang efisien dengan menggunakan bahasa pemrograman berorientasi obyek (C++).
1. Chapter 02. Getting Started
2. Chapter 03. Growth of Functions
3. Chapter 04. Divide-and-Conquer
4. Chapter 15. Dynamic Programming
5. Chapter 16. Greedy Algorithms
6. Chapter 22. Elementary Graph Algorithms
7. Chapter 24. Single-Source Shortest Paths
8. Chapter 25. All-Pairs Shortest Paths
9. Chapter 33. Computational Geometry
Penelitian
Desain dan Analisis Algoritma
Penelitian
Desain dan Analisis Algoritma
Penelitian
Desain dan Analisis Algoritma
Publikasi Ilmiah
Referensi Utama
• Tugas (Analisis dan Coding) 50%
❑ Kelas atau Take Home
• Evaluasi Tengah Semester 20%
• Evaluasi Akhir Semester 20%
• Absensi 10%
• Algorithm
• Outline, the essence of a computational
procedure, step-by-step instructions
• Program – an implementation of an
algorithm in some programming language
• Data structure
• Organization of data needed to solve the
problem
Data Structures and Algorithms
Overall Picture
Data Structure and
Algorithm Design Goals
Implementation
Goals
Correctness
Efficiency
Robustness
Adaptability
Reusability
Sort
Example: Sorting
INPUTsequence of numbers
a1, a2, a3,….,anb1,b2,b3,….,bn
OUTPUTa permutation of the
sequence of numbers
2 5 4 10 7 2 4 5 7 10
Correctness
For any given input the algorithm
halts with the output:
• b1 < b2 < b3 < …. < bn
• b1, b2, b3, …., bn is a
permutation of a1, a2, a3,….,an
Running time
Depends on
• number of elements (n)
• how (partially) sorted
they are
• algorithm
Designing Algorithms
• Several techniques/patterns for designing
algorithms exist
• Incremental approach: builds the solution one
component at a time
• Divide-and-conquer approach: breaks original
problem into several smaller instances of the
same problem
SPOJ Problem Set (classical)
5196. Monotonous numbers
Kombinasi dengan Repetisi
SPOJ Problem Set (classical)
5196. Monotonous numbers• Solusi Kombinatorik
+
+=
−+
=
+−
−
+−
=8
1
!8
9
9
91
1101
N
Ni
i
N
N
N
N
N
Rasio
SPOJ Problem Set (classical)
5196. Monotonous numbers