2022-2023 20221403《计算机基础与程序设计》第六周学习总结
作业信息
教材学习内容总结
- Polya如何解决问题
- 理解问题
- 设计方案
- 执行方案
- 回顾(分析得到的解决方案)
- 查找与排序算法
(1)查找
- 顺序搜索:依次查找每个元素看是否与需要元素匹配,找到时停止。
- 二分检索:假设为有序数组,找出中间数比较与所需数的大小并选择上或下半区再次进行检索直到找出所需元素。
(2)排序 - 选择排序:在数组中找到最大或小的元素并放在一端记为已排序,在未排序数中再次挑选最大或最小元素再次放在第一个已排序元素后并进行重复在,直到所有元素排序成功。
- 冒泡排序:从最后一个元素开始向上与元素比较,若小于上个元素便进行交换,一直进行并重复,除了最后一个元素,便成功排序好。
- 插入排序:从第一个数开始定义为已排序,向后找一个元素并与已排序元素比较,若小于则放在之前,若大于则位置不变,记为已排序。进行重复直到排序成功。
- 快速排序:从数列中挑出一个元素,称为 “基准”。重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面。
教材学习中的问题和解决过程
- 在学习时我看到书上说:递归是算法调用它本身的能力。我不理解什么意思
经查找资料后了解递归的含义,是将算法进行重复,循环。像阶乘,二分检索,快速排序,斐波那契数列等都会用到递归。
代码调试中的问题和解决过程
- 在一次运用case语句时在其中一个语句后面忘记加break导致输出两个结果。应该加上break表示结束。
在编写时将sum=0放在了do语句后,导致所有的sum都被赋值为0,应在一开始进行赋值。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第六周 | 300/1600 | 3/ 10 | 30/90 |