C语言II博客作业02

| 这个作业属于哪个课程 | 计算机科学与技术三班 |
| ---- | ---- | ---- |
| 这个作业要求在哪里 | C语言II—作业02 | |
| 这个作业的目标 | 选择排序法排序输出 | |
| 学号 | 20209006 | |
一、本周教学内容&目标
第七章 数组 7.17.1 输出所有大于平均值的数

1.学生知道在哪种情况下可以使用构造数据类型—数组进行数据的处理

2.掌握用一维数组进行编程

3.掌握选择排序法和二分查找法
二、本周作业(总分:50分)

2.2 题目:快速寻找满足条件的两个数
能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。

解法一:采用穷举法,从数组中任意取出两个数字,计算两者之和是否为给定的数字。

解法二:对数组中的每个数字arr[i]都判别Sum-arr[i]是否在数组中。

解法三:对数组进行排序,然后使用二分查找法针对arr[i]查找Sum-arr[i]。

要求:
1.根据三种解法给出相应的代码,并给出测试数据。(15分)


2.请说明三种算法的区别是什么?你还可以给出更好的算法吗?(10分)
第一二种知识和与给定的数值,经过一个个对比相加得到的值,第一二种方法类似经过差值和相加运算得到得,而第三种方法我个人认为不适合于简单的寻求两个数相加等于定值但是它适应于复杂的此类型题目,运用排序和二分法查找比较节省时间思路也很清晰,二分法的思路是对半分折于移位,判断低位与高位之间的关系;
2.3 请搜索有哪些排序算法,并用自己的理解对冒泡排序算法分别进行描述(5分)2.4.4 去了解冒泡排序,并用自己的话进行说明(5分)

应该是冒泡排序算法进行描述
这次作业的第三部分我是使用冒泡排序进行排序的,在使用冒泡排序时给我的直观感受是流程复杂,但是代码简单。
通过查阅资料发现冒泡排序和选择排序2种排序算法的平均复杂度是差不多的,为n的平方。
其流程就像冒泡一样比如将水的高度分成若干份,大的泡泡集中在上部,小的泡泡集中在下面一样,泡泡通过交换使其成为这样的排列情况,。
2.4 请给出本周学习总结(15分)
1 学习进度条(5分)

每周所花时间 代码行数 学到的知识点简介 目前比较迷惑的问题
第一周 8H 150行 文件中FILE指针的形式,以及fopen=()函数的简单使用 指针
第二周 8H 278行 关于数组的初步运用 二维数组的应用

2 累积代码行和博客字数(5分)

3 学习内容总结和感悟(5分)

C语言毫无美感可言

posted @ 2021-03-27 19:44  罗毅!  阅读(47)  评论(0编辑  收藏  举报