Lecture 02 - Algorithm Design
Lecture 02 - Algorithm Design
Hossein Zeinali
Modified Slides from Dr. Bahador Bakhshi
CE Department, Amirkabir University of Technology
What We Will Learn
Sample algorithms to practice problem
solving steps
Input & Output analysis
Algorithm design
Pseudo-code
2
عدد۳ محاسبه میانگین
Algorithm: Average
3
الگوريتم تشخیص زوج يا فرد بودن عدد
Algorithm: Odd-Even-1
4
الگوريتم تشخیص زوج يا فرد بودن عدد
Algorithm: Odd-Even-2
1- print “Please enter an integer”
2- read n
3- if(n < 0)
n -1 * n
4- while(n >= 2)
nn–2
5- if(n == 0)
print “even”
else
print “odd” Verify the
Algorithm
5
الگوريتم تشخیص زوج يا فرد بودن عدد
Algorithm: Odd-Even-3
1- print “Please enter an integer”
2- read n
3- while (n >= 2) or (n <= -1)
n n - sign(n) * 2
4- if (n == 1)
print “odd”
else
print “even”
6
تمام ميشود را ميگیرد و0 الگوريتمي كه يك رشته عدد را كه با
تعداد اعداد زوج و فرد را چاپ ميكند
Algorithm: Count Odd-Even
odd_cnt 0
even_cnt 0
print “Please enter an integer”
read n
while (n != 0)
y n mod 2
if (y == 0)
even_cnt even_cnt + 1
else
odd_cnt odd_cnt + 1
print “Please enter an integer”
read n
7
الگوريتمي كه يك عدد صحیح مثبت را بگیرد و مجموع ارقام آن را
چاپ كند
Algorithm: Digit-Sum
print “Please enter a positive integer”
read n
sum 0
mn
while (n != 0)
y n mod 10
sum sum + y
nn-y
n n / 10
Verify the
print “sum of digits of” m “ = “ sum Algorithm
8
چاپ8 الگوريتمي كه يك عدد صحیح مثبت را بگیرد و آنرا در مبناي
كند
Algorithm: Base-8
print “Please enter a positive integer”
read n
i0
while (n != 0)
x[i] n mod 8
n floor (n / 8)
ii+1
ii-1
while (i >= 0)
print x[i]
ii-1
9
الگوريتمي كه يك عدد صحیح مثبت را بگیرد و فاكتوريل آنرا تولید كند
Algorithm: Factorial-1
print “Please enter a positive integer”
read n
i1
result 1
while (i <= n)
result i * result
ii+1
return result
10
الگوريتمي كه يك عدد صحیح مثبت را بگیرد و فاكتوريل آنرا تولید كند
Algorithm: Factorial-2
print “Please enter a positive integer”
read n
result 1
while (n > 0)
result result * n
nn-1
return result
11
الگوريتمي كه يك عدد صحیح مثبت را بگیرد و فاكتوريل آنرا تولید كند
Algorithm: Factorial-Recursive (n)
if (n <= 1)
return 1
else
return n * Factorial-Recursive (n - 1)
12
و محل عضوstart الگوريتمي كه يك رشته عدد را كه محل عضو اول آن با
. مشخص شده است را به صورت صعودي مرتب كندend آخر آن با
13
الگوريتمي كه يك رشته عدد را كه محل عضو اول آن با startو محل عضو
آخر آن با endمشخص شده است را به صورت صعودي مرتب كند.
]temp x[j
]x[j] x[i
x[i] temp
15
Tower of Hanoi
Algorithm hanoi(n, source, target, auxiliary):
if (n <= 0)
return
A = [3, 2, 1]
B = []
C = []
hanoi(3, A, C, B)
16
Eight Queens Puzzle
17
Summary
There are more than one algorithm for a problem
Efficiency, Complexity, Clarity, …
18