1.作业头

| 这个作业属于哪个课程 | < https://edu.cnblogs.com/campus/zswxy/SE2020-3> |

| ---- | ---- | ---- |

| 这个作业要求在哪 | <https://edu.cnblogs.com/campus/zswxy/SE2020-3/homework/11822 > |

| 这个作业的目标 | <熟练掌握数组与他的算法,如顺序排序法,选择排序法> |

| 学号 | <20209160> |

一、本周教学内容&目标

第七章 数组 7.17.1 输出所有大于平均值的数

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

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

3.掌握选择排序法和二分查找法

二、本周作业

2.1 完成PTA作业,并给出编程题完成截图

2.2 题目:快速寻找满足条件的两个数

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

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



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



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



要求:

1.根据三种解法给出相应的代码,并给出测试数据。

2.请说明三种算法的区别是什么?你还可以给出更好的算法吗?

解法一:穷举法。将数组中的数逐个逐个的相加,再与给定的值比较。和与给定的值逐个比较。
解法二:判断给定的值与数组里的每个数的差,是否能在数组里找到差。数组里的数逐个与差比较。
解法三:首先给数组进行选择排序,然后求给定的值与数组里的每个数的差,再二分法查找,最后用for循环输出。
判别法:判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。

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

排序算法:选择排序法,冒泡排序法,插入排序法,希尔排序法,计数排序法,归并排序法
选择排序法:在数组中选择一个最大或者最小的数排在前面,再从剩下的数中选择排在后面。
冒泡排序法:比如说升序排列,那么就依次相邻两个数比较大小,然后把大的数放在后面。
插入排序法:它通过构建有序序列,对于未排序的数据序列,在已排序序列中从后向前扫描,找到相应的位置并插入。
希尔排序法:希尔排序在插入排序的基础上进行了改进,它的基本思路是先将整个数据序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全部数据进行依次直接插入排序。
计数排序法:找到元素中值为i的元素,放入另外一个数组的第i项,全部计完后从第一项一次输出,每输出一次第i项减少一次。
归并排序法:归并排序严格遵循从左到右或从右到左的顺序合并子数据序列, 它不会改变相同数据之间的相对顺序, 因此归并排序是一种稳定的排序算法。

2.4 请给出本周学习总结

1 学习进度条

| 时间 | 博客字数 | 代码行数 | 这周发的时间 | 存在迷惑 |

| ---- | ---- | ---- | ---- | ---- | ---- |

| 第二周 | 541 | 254 | 8小时 | 大概了解数组,但是冒泡排序跟选择没有太清楚 | |

2 累积代码行和博客字数

3 学习内容总结和感悟

1.通过这几周的联系,让我对C语言数组有更深一步了解

2.学习到现在,还是发现自己的许多的盲点,有很多的不理解的东西

3.要学会这门课程,需要发更多的精力,更好的去对待他

C语言II一作业02的更多相关文章

  1. C语言II博客作业02

    这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4 这个作业要求在哪里 https://edu.cnblogs.com/campus/zs ...

  2. C语言入门:02.第一个C语言程序

    一.开发工具的选择(1)可以用来写代码的工具:记事本.UltraEdit.Vim.Xcode等(2)选择Xcode的原因:苹果官方提供的开发利器.简化开发过程.有高亮显示功能 (3)使用Xcode新建 ...

  3. | C语言I作业02

    C语言I博客作业02 标签: 18软件2班 李煦亮 问题 答案 这个作业属于那个课程 C语言程序设计I 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/C ...

  4. [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)

    本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有 ...

  5. C语言实现二叉树-02版

    ---恢复内容开始--- 昨天,提交完我们的二叉树项目后,今天早上项目经理早早给我打电话: 他说,小伙子干的不错.但是为什么你上面的insert是recusive的呢? 你难道不知道万一数据量大啦!那 ...

  6. C语言范例学习02

    第二章 指针 算是重点吧,这也是C语言的特色啊,直接访问物理存储. 重点: 指针就是一个存放它指向变量地址的变量,好绕口.   区分*在定义是与引用是的作用.   区分*.&的不同.   指针 ...

  7. 【C语言学习】-02 分支结构

    本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...

  8. c语言基础学习02

    =============================================================================涉及到的知识点有:include有两种用法.{ ...

  9. R语言编程艺术#02#矩阵(matrix)和数组(array)

    矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...

  10. JavaScript语言精粹 笔记02 函数

    函数函数对象函数字面量调用参数返回异常给类型增加方法递归作用域闭包回调模块级联套用记忆   函数 1 函数对象 在JS中函数就是对象.对象是“名/值”对的集合并拥有一个连接到原型对象的隐藏连接.对象字 ...

随机推荐

  1. 公司官网百度搜素优化(www.curetech.cc)

    1.  解读" 百度搜素引擎网页质量白皮书 "  . 链接:https://pan.baidu.com/s/1fD7Cm93qsK01M0K1M1cIKw 提取码:9krx 2.  ...

  2. Linux学习 --- 网络基础知识

    1.1  IP地址 IP地址由两部分组成  网络号和主机号 .网络号为IP地址的高位组成,而主机号是IP地址的低位组成,两个的大小取决于网络的类型. IP地址根据网络的地址不同分为:A类,B类,C类, ...

  3. js match方法

    1.用法 match()方法可以字符串中检索指定的值,或者是匹配一个或多个正则表达式 2.返回值 该方法类似于indexOf()/lastIndexOf(),区别就是返回值不一样 indexOf()/ ...

  4. Vue 数组响应

    响应渲染 在Vue中,被渲染的数据都是响应式的,即Vue实例中进行改变页面中也会跟着改变: <body> <div id="app"> <p>{ ...

  5. django 事务踩坑

    with transaction.atomic(): save_id = transaction.savepoint() #xx.字段A ormg更新操作 #提交事务 transaction.save ...

  6. 解决mysql使用sql文件不能还原数据库的问题

    来源:https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=109605 解决ERROR 1231 (42000): Variable ...

  7. 如何手动安装python模块包package

    我们不用Cd C:\Users\xxx.xx\AppData\Local\Programs\Python\Python311 Python -m pip install openpyxl的方法. 解答 ...

  8. STM32F0使用LL库实现UART接收

    初始化: 1 void MX_USART1_UART_Init(void) 2 { 3 4 /* USER CODE BEGIN USART1_Init 0 */ 5 6 /* USER CODE E ...

  9. python读取文本中的字典

    首先得明确文本的每行是存的json或者用python的write(str(一个字典))写入的,那么不用借助json模块就能读取为字典,使用eval函数就行,json只能处理带双引号的字符串,但很多时候 ...

  10. hive安装准备 (mysql8.0安装)

    1.先准备好安装的所需材料 2.开始准备安装 先安装mysql 解压命令:tar -xvJf  (注意:这里' j '是大写) 解压后改名: mv mysql-8.0.24-linux-glibc2. ...