Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs...
-
Upload
simon-ezra-morgan -
Category
Documents
-
view
223 -
download
6
Transcript of Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs...
![Page 1: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/1.jpg)
Chapter 8
Algorithms
![Page 2: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/2.jpg)
Understand the Understand the concept of an algorithmconcept of an algorithm..
Define and use the Define and use the three constructsthree constructs for developing for developingalgorithms: algorithms: sequencesequence, , decisiondecision, and , and repetitionrepetition..
Understand and use three tools to represent algorithms:Understand and use three tools to represent algorithms:flowchartflowchart, , pseudocodepseudocode, and , and structure chartstructure chart..
After reading this chapter, the reader should After reading this chapter, the reader should be able to:be able to:
OOBJECTIVESBJECTIVES
Understand the concept of Understand the concept of modularitymodularity and and subalgorithmssubalgorithms..
List and comprehend common algorithms. List and comprehend common algorithms.
![Page 3: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/3.jpg)
8.1 Concept
8.3 Algorithm representation
8.2 Three Constructs
ContentsContents
8.5 Subalgorithms
Summary
8.4 More Formal Definition
8.6 Basic Algorithms8.7 Recursion
![Page 4: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/4.jpg)
CONCEPTCONCEPTCONCEPTCONCEPT
8.18.1
![Page 5: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/5.jpg)
Figure 8-1Informal definition of an algorithm
used in a computer
![Page 6: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/6.jpg)
ExampleFinding the largest integer among five integers
Figure 8-2
![Page 7: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/7.jpg)
Figure 8-3 Defining actions in FindLargest algorithm
![Page 8: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/8.jpg)
Figure 8-4FindLargest refined
![Page 9: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/9.jpg)
Figure 8-5Generalization of FindLargest
![Page 10: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/10.jpg)
THREE CONSTRUCTSTHREE CONSTRUCTSfor a structured program or algorithmfor a structured program or algorithmTHREE CONSTRUCTSTHREE CONSTRUCTSfor a structured program or algorithmfor a structured program or algorithm
8.28.2
![Page 11: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/11.jpg)
Figure 8-6Three constructs
![Page 12: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/12.jpg)
ALGORITHM ALGORITHM REPRESENTATIONREPRESENTATION
---Flowchart, Pseudocode---Flowchart, Pseudocode
ALGORITHM ALGORITHM REPRESENTATIONREPRESENTATION
---Flowchart, Pseudocode---Flowchart, Pseudocode
8.38.3
![Page 13: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/13.jpg)
Figure 8-7Flowcharts for three constructs
![Page 14: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/14.jpg)
Figure 8-8Pseudocode for three constructs
![Page 15: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/15.jpg)
Example 1Example 1
Write an algorithm in pseudocode that finds the average of two numbers
SolutionSolution
See Algorithm 8.1 on the next slide.
![Page 16: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/16.jpg)
AverageOfTwoInput: Two numbers
1. Add the two numbers2. Divide the result by 23. Return the result by step 2
End
Algorithm 8.1:Algorithm 8.1: Average of twoAverage of two
![Page 17: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/17.jpg)
Example 2Example 2
Write an algorithm to change a numeric grade to a pass/no pass grade.
SolutionSolution
See Algorithm 8.2 on the next slide.
![Page 18: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/18.jpg)
Pass/NoPassGradeInput: One number
1. if (the number is greater than or equal to 60)then 1.1 Set the grade to “pass”else 1.2 Set the grade to “nopass”End if
2. Return the gradeEnd
Algorithm 8.2:Algorithm 8.2: Pass/no pass GradePass/no pass Grade
![Page 19: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/19.jpg)
Example 3Example 3
Write an algorithm to change a numeric grade to a letter grade.
SolutionSolution
See Algorithm 8.3 on the next slide.
![Page 20: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/20.jpg)
LetterGradeInput: One number
1. if (the number is between 90 and 100, inclusive)then 1.1 Set the grade to “A”End if
2. if (the number is between 80 and 89, inclusive)then 2.1 Set the grade to “B”End if
Algorithm 8.3:Algorithm 8.3: Letter gradeLetter grade
Continues on the next slide
![Page 21: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/21.jpg)
3. if (the number is between 70 and 79, inclusive)then 3.1 Set the grade to “C”End if
4. if (the number is between 60 and 69, inclusive)then 4.1 Set the grade to “D”End if
Algorithm 8.3:Algorithm 8.3: Letter grade (continued)Letter grade (continued)
Continues on the next slide
![Page 22: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/22.jpg)
5. If (the number is less than 60)then 5.1 Set the grade to “F”End if
6. Return the gradeEnd
Algorithm 8.3:Algorithm 8.3: Letter grade (continued)Letter grade (continued)
![Page 23: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/23.jpg)
Example 4Example 4
Write an algorithm to find the largest of a set of numbers. You do not know the number of numbers.
SolutionSolution
See Algorithm 8.4 on the next slide.
![Page 24: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/24.jpg)
FindLargestInput: A list of positive integers
1. Set Largest to 02. while (more integers)
2.1 if (the integer is greater than Largest) then 2.1.1 Set Largest to the value of the
integer End ifEnd while
3. Return LargestEnd
Algorithm 8.4:Algorithm 8.4: Find largestFind largest
![Page 25: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/25.jpg)
Example 5Example 5
Write an algorithm to find the largest of 1000 numbers.
SolutionSolution
See Algorithm 8.5 on the next slide.
![Page 26: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/26.jpg)
FindLargestInput: 1000 positive integers
1. Set Largest to 02. Set Counter to 03. while (Counter less than 1000)
3.1 if (the integer is greater than Largest) then 3.1.1 Set Largest to the value of the integer
End if 3.2 Increment CounterEnd while
4. Return LargestEnd
Algorithm 8.5:Algorithm 8.5: Find largest of 1000 numbersFind largest of 1000 numbers
![Page 27: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/27.jpg)
MORE FORMAL MORE FORMAL DEFINITIONDEFINITION
MORE FORMAL MORE FORMAL DEFINITIONDEFINITION
8.48.4
![Page 28: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/28.jpg)
Algorithm:An Algorithm:An ordered ordered setset of of unambiguous unambiguous
stepssteps that that produces a produces a resultresult and and terminates terminates
in a finite timein a finite time..
Note:Note:
![Page 29: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/29.jpg)
SUBALGORITHMSSUBALGORITHMSSUBALGORITHMSSUBALGORITHMS
8.58.5
![Page 30: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/30.jpg)
Figure 8-9Concept of a subalgorithm
![Page 31: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/31.jpg)
FindLargestInput: A list of positive integers
1. Set Largest to 02. while (more integers)
2.1 FindLargerEnd while
3. Return LargestEnd
Algorithm 8.6:Algorithm 8.6: Find largestFind largest
![Page 32: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/32.jpg)
FindLargerInput: Largest and current integer
1. if (the integer is greater than Largest)then 1.1 Set Largest to the value of the integerEnd ifEnd
Subalgorithm:Subalgorithm: Find largerFind larger
![Page 33: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/33.jpg)
BASICBASICALGORITHMSALGORITHMS
BASICBASICALGORITHMSALGORITHMS
8.68.6
![Page 34: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/34.jpg)
summation :求和product :乘积Smallest and largest :最大和最小Sorting:排序– Selection sort :选择排序– Bubble sort :冒泡排序– Insertion sort :插入排序
Searching :查找– Sequential search :顺序查找– binary search :折半查找
![Page 35: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/35.jpg)
Figure 8-10Summation
(1)Initialization(1)Initialization
(2)Iteration(2)Iteration
(3)Return(3)Return
Three Part:Three Part:
![Page 36: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/36.jpg)
Figure 8-11Product
![Page 37: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/37.jpg)
Figure 8-11Sorting
1.Why sorting?
2. Sorting Selection Sort
Bubble SortInsertion Sort
3. Other Sorting:Quick SortHeap SortShell SortBucket SortMerge Sort
…
![Page 38: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/38.jpg)
Figure 8-12Selection sort
交换(第 k 个最小元素)
![Page 39: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/39.jpg)
Figure 8-13: part IExample of selection sort
![Page 40: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/40.jpg)
Figure 8-13: part IIExample of selection sort
![Page 41: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/41.jpg)
Figure 8-14Selection sort algorithm
![Page 42: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/42.jpg)
Figure 8-15Bubble sort
![Page 43: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/43.jpg)
Figure 8-16: part IExample of bubble sort
![Page 44: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/44.jpg)
Figure 8-16: part IIExample of bubble sort
![Page 45: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/45.jpg)
Figure 8-17Insertion sort
![Page 46: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/46.jpg)
Figure 8-18: part IExample of insertion sort
![Page 47: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/47.jpg)
Figure 8-18: part IIExample of insertion sort
![Page 48: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/48.jpg)
Figure 8-19Search concept
![Page 49: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/49.jpg)
Figure 8-20: Part I
Sequential Search
![Page 50: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/50.jpg)
Figure 8-20: Part II
Example of a sequential Search
![Page 51: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/51.jpg)
Figure 8-21
Example of a binary search
![Page 52: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/52.jpg)
RECURSIONRECURSIONRECURSIONRECURSION
8.78.7
![Page 53: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/53.jpg)
• Iterative :迭代• recursion :递归。算法自我调用。• Factorial: 阶乘
![Page 54: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/54.jpg)
There are two methods for solving a problem:
• Iteration
• Recursion
![Page 55: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/55.jpg)
Figure 8-22Iterative definition of factorial
![Page 56: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/56.jpg)
Figure 8-23
Recursive definition of factorial
![Page 57: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/57.jpg)
Figure 8-24
Tracing recursive solution to factorial problem
![Page 58: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/58.jpg)
FactorialInput: A positive integer num
1. Set FN to 12. Set i to 13. while (i is less than or equal to num)
3.1 Set FN to FN × i 3.2 Increment iEnd while
4. Return FNEnd
Algorithm 8.7:Algorithm 8.7: Iterative factorialIterative factorial
![Page 59: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/59.jpg)
FactorialInput: A positive integer num
1. if (num is equal to 0)then 1.1 return 1else1.2 return num × Factorial (num – 1) End ifEnd
Algorithm 8.8:Algorithm 8.8: Recursive factorialRecursive factorial
![Page 60: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/60.jpg)
• 非正式地讲,算法 (Algorithm)是一步一步解决问题或完成任务的方法。
Summary
• 算法接受一个输入数据的列表,生成一个输出数据的列表。
![Page 61: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/61.jpg)
Summary
• 程序由顺序 (sequence) 、判断 (decision) 和循环 (repetition) 结构构成。
• 流程图( flowchart )是算法图形化的表示。
• 伪代码( pseudocode )是算法类似英语的表示。
![Page 62: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/62.jpg)
• 算法正式定义为一组步骤明确的有序集合,它产生结果并在有限的时间内终止。
Summary
• 算法可分解为称为子算法 ( subalgorithm ) 的更小单元。
![Page 63: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/63.jpg)
Summary
• 排序 (sorting) 是一种基本算法。常用的有选择排序 (selection sort) 、冒泡排序 (bubble sort) 、插入排序 (insertion sort) 。
• 查找 (searching) 是一种基本算法。常用的有顺序查找(用于无序表)、折半查找(用于有序表)。
![Page 64: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/64.jpg)
• 迭代算法 (iterative algorithm) 只包括参数而不包括算法本身。
Summary
• 递归算法 (recursive algorithm) 包括算法本身。
![Page 65: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/65.jpg)
Key terms• Algorithm:算法,是一种逐步解决问题或完成任务的方法。每个算法都有自己不同于其他算法的名字。
• Informal definition:非正式定义• Input data :输入数据• output data :输出数据• Findlargest:取最大值。(一种算法的名字)• Refinement:精化• Generalization :普遍化(泛化)
![Page 66: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/66.jpg)
Key terms
• More formal definition: 更正式的定义
1 、 Ordered set :有序集合。2 、 unambiguous steps :明确步骤3 、 produce a result :产生结果。4 、 terminate in a finite time :在有限的时
间内终止。
![Page 67: Chapter 8 Algorithms. Understand the concept of an algorithm. Define and use the three constructs for developing algorithms: sequence, decision, and repetition.](https://reader036.fdocuments.in/reader036/viewer/2022081515/56649ef55503460f94c08c10/html5/thumbnails/67.jpg)
Key terms• subalgorithm :子算法。• subprogram :子程序• subroutine :子例程• procedure :过程• function :函数• method :方法• module :模块