大工19秋《计算机科学学》在线作业2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大工19秋《计算机科学学》在线作业2
1. 作业要求
本次在线作业2的主要要求如下:
- 阅读并理解《计算机科学学》第5章的内容,主要包括计算机算法和数据结构的基本概念以及算法分析的基本方法。
- 通过阅读教材和课堂讲义,掌握算法设计的基本思想和常用的算法设计方法。
- 完成以下练题:
1. 给出两个整数a和b,设计并实现一个算法,求出a和b的最大公约数。
2. 给定一个整数n,设计并实现一个算法,求出1到n之间所有整数的和。
3. 给定一个整数n,设计并实现一个算法,计算n的阶乘。
4. 给定一个有序数组arr和一个目标值target,设计并实现一个算法,在arr中查找target并返回其下标。
2. 算法设计和实现
2.1 最大公约数算法
最大公约数算法可以使用辗转相除法来实现。该算法的基本思想是不断用b去除a,直到a能整除b,此时b即为a和b的最大公约数。下面是最大公约数算法的实现示例:
def gcd(a, b):
while b != 0:
c = a % b
a = b
b = c
return a
2.2 整数求和算法
整数求和算法可以使用循环来实现。将1到n之间的所有整数累加即可。下面是整数求和算法的实现示例:
def sum_of_integers(n):
sum = 0
for i in range(1, n+1):
sum += i
return sum
2.3 阶乘计算算法
阶乘计算算法可以使用递归来实现。将n与(n-1)的阶乘相乘,直到n为1时停止递归。下面是阶乘计算算法的实现示例:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
2.4 数组查找算法
数组查找算法可以使用二分查找法来实现。由于给定数组是有序的,可以通过比较目标值与中间元素的大小来确定查找范围。下面是数组查找算法的实现示例:
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
3. 总结
通过本次在线作业2,我们研究了《计算机科学学》中有关算法和数据结构的基本概念,以及算法分析的基本方法。我们也通过实现最大公约数算法、整数求和算法、阶乘计算算法和数组查找算法,深入理解了算法设计的基本思想和常用的算法设计方法。这些算法和方法可以在解决实际问题时提供帮助,并为进一步研究计算机科学打下坚实基础。
以上是对大工19秋《计算机科学学》在线作业2的简要总结和算法实现示例。希望能对您有所帮助。如果有任何问题,请随时向我提问。谢谢!