zoukankan      html  css  js  c++  java
  • C语言II博客作业02

    1.作业头

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-1
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11821
    这个作业的目标 掌握用一维数组进行编程,了解选择排序算法和二分查找法
    学号 20209087

    二、本周作业(总分:50分)
    2.1 完成PTA作业,并给出编程题完成截图(5分)

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

    1.根据三种解法给出相应的代码,并给出测试数据。(15分)
    解法一:采用穷举法,从数组中任意取出两个数字,计算两者之和是否为给定的数字。


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

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


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

    穷举法是枚举所有的可能,一个不漏,这个不要求排列有序
    第二个就是假设给定的和为Sum。一个变通的思路,就是对数组中的
          每个数字arr[i]都判别Sum-arr[i]是否在数组中,这样,就变通成为一个查找的算法:
    二分法通常一轮差不多可以去掉一半(也就是所谓的减治法),一般要求有序才可以排除一半.
    

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

    1、插入排序(直接插入排序、折半插入排序、希尔排序);
    插入排序是将无序序列中的各元素依次插入到已经有序的线性表中。
    2、交换排序(起泡排序、快速排序);
    交换排序是借助数据元素之间的互相交换进行排序的一种方法。
    3、交换排序(直接选择排序、堆排序);
    交换排序是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,
    顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
    4、归并排序;
    归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。
    最简单的归并是直接将两个有序的子表合并成一个有序的表。
    5、基数排序;
    基数排序是它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中
    ,藉以达到排序的作用,基数排序法是属于稳定性的排序,
    

    2.4 请给出本周学习总结(15分)
    1 学习进度条(5分)

    周/日期 这周所花的时间 代码行 学到的知识简介 目前比较困惑的地方
    第一周/3.4 4h 200 文件数据的读写和处理 mode的取值,计算代码运算时间
    第二周/3.11 5h 300 掌握用一维数组进行编程,了解选择排序算法和二分查找法 返回scanf的值,二分查找法

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

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

    总结和感悟

    (1)多阅读优秀代码,学习优秀之处,学习思路思维,多模仿,快速成长!
    (2)对于现在的我来说每一次作业都是挑战,需要花较长的时间去完成,
         特别是在写题遇到困难的时候,真的恼火,但是在编译成功的那一刻也是真的快乐!
    (3)自己的课后拓展很重要,能够不断加深和获取对这门功课的理解和多样化的知识点!
    
    去了解冒泡排序,并用自己的话进行说明:
    冒泡排序
    1、从头依次访问数组每个元素,进行相邻或间的邻元素之间的交换
    2、元素之间两两交换,把小的换到前面,大的放到后面。
    3、所有元素交换完成后,一趟交换完成,此时最大的元素会到数组尾部。
    4、反复执行以上步骤,直到所有元素都排序完。
    
    
    
    
  • 相关阅读:
    Ubuntu18.04 一条命令安装caffe问题
    ubuntu18 + caffe+cpu+anaconda3
    ubuntu18+caffe+cuda
    opencv-python常用接口
    tensorflow-gpu安装
    【LabVIEW】如何给输入控件赋值
    【LabVIEW】控件初始化
    【LabVIEW】程序结构
    【LabVIEW】程序框图中错误输出后status如何调出
    【总线】ARINC 429总线协议
  • 原文地址:https://www.cnblogs.com/caolihua123/p/14517525.html
Copyright © 2011-2022 走看看