C语言II博客作业02

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11806
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11806
这个作业的目标 1.学生知道在哪种情况下可以使用构造数据类型—数组进行数据的处理2.掌握用一维数组进行编程3.掌握选择排序法和二分查找法
我的学号 20209024

2.1PTA作业

截图:1.

2.

2.2

1.穷举法:

2.对数组中的每个数字arr[i]都判别Sum-arr[i]是否在数组中:

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


4.区别:

第一种算法很简单,写起来也很容易,但是效率不高。第二种比第一种稍微好一点,但是效率和占用空间还是比较大的,第三种相对来说较难,但是从运行时间,占用空间来说是比第一二种好得多。

2.3请搜索有哪些排序算法,并用自己的理解对集中排序算法分别进行描述:

一.交换排序
1.冒泡排序:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。

2.快速排序:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。

二.插入排序
1.直接插入排序: 和交换排序不同的是它不用进行交换操作,而是用一个临时变量存储当前值。当前面的元素比后面大时,先把后面的元素存入临时变量,前面元素的值放到后面元素位置,再到最后把其值插入到合适的数组位置

2.希尔(shell)排序: 在直接插入排序的思想下设置一个最小增量dk,刚开始dk设置为n/2。进行插入排序,随后再让dk=dk/2,再进行插入排序,直到dk为1时完成最后一次插入排序,此时数组完成排序。

2.4学习进度条

周次 代码行数 博客字数 问题
第一周 70 200 不是很明白最新学的东西
第二周 90 400 对于排序还是一知半解

2.4累积代码和博客字数

代码字数 博客字数
70 200
90 400

学习内容

posted @ 2021-03-28 14:42  首汉卿  阅读(55)  评论(0编辑  收藏  举报