计算机科学导论第5版ppt,计算机科学导论第5讲-1.ppt

计算机科学导论第5讲-1.ppt

例 选择排序 * 23 78 45 8 32 56 8 78 45 23 32 56 8 23 45 78 32 56 8 23 32 78 45 56 8 23 32 45 78 56 8 23 32 45 56 78 Ⅱ 冒泡排序 列表被分成两个子列表:已排序的和未排序的 在未排序的子列表中,最小的元素通过冒泡的方法选出来,并移到已排序的子列表中 * 已排序的 未排序的 向上冒泡 * 23 78 45 8 32 56 8 23 78 45 32 56 8 23 32 78 45 56 8 23 32 45 78 56 8 23 32 45 56 78 例 冒泡排序 Ⅲ 插入排序 排序列表被分成两部分:已排序的和未排序的 在每次扫描过程中,未排序子列表中的第一个元素被取出,然后转到已排序的子列表中,并且插入到合适的位置。 * 已排序的 未排序的 * 23 78 45 8 32 56 23 78 45 8 32 56 23 45 78 8 32 56 8 23 45 78 32 56 8 23 32 45 78 56 例 插入排序 3. 查找 顺序查找 折半查找 * 顺序查找可以在任何列表中查找。 折半查找要求列表是有序的。 * Ⅰ顺序查找 顺序查找可以在任何列表中查找。 顺序查找从表头开始查找,当找到目标或确信查找目标不在列表中时结束。 顺序查找算法很慢。 * Ⅱ折半查找 折半查找要求列表是有序的。 折半查找是从测试列表的中间元素来开始查找的,这将能够判断出目标在列表的前半部还是后半部,一般排除一半的列表。 折半查找算法效率高。 * 总结 算法的概念 算法的三种基本结构(顺序、选择、循环) 算法的表示(流程图、N-S图、伪代码、计算机语言) 算法设计(穷举、排序、输出图形) * * * 例 从键盘输入n值,输出n行用*号组成等腰三角形。例:输入 n=4,输出的图形如下: * * * * * * * * * * * * * * * * ??? * k=1,n-1=3个空,2*1-1=1个* ?? * * * k=2,n-2=2个空,2*2-1=3个* ? * * * * * k=3,n-3=1个空,2*3-1=5个* * * * * * * * k=4,n-4=0个空,2*4-1=7个* 共n行,其中第K行由n-k个空格和2k-1个*组成 * 分析: 1、输出 n 行。 2、图形的第 k 行(1<=k<=n)由 n-k个 空格 和 2k-1 个 * 组成。 算法设计: 1.输入 n; 2.重复输出n行。对于第 k 行,每行输出n-k 个空格和 2k-1 个* * 开始 结束 输入n k+1 ?k k≤n Y N 1?k A B 对行循环 (k=1,2,…,n) 输出空 J+1 ?J J≤n-k Y N 1 ?J A 输出 * J+1 ?J J≤2k-1 Y N 1 ?J B 换行 对每个k行各列循环,输出n-k个空格和2k-1个* 三、 算法的表示 自然语言 流程图 伪代码 结构图 N-S结构图 PAD结构图 计算机语言 * √ √ √ √ * 用规定的一系列图形、流程线和文字说明算法中的基本操作和控制流程。 流程图包括: 表示相应操作的框; 带箭头的流程线; 框内外必要的文字说明。 1. 流程图 * (1)图形符号 起止框 判断框 处理框 输入/输出框 注释框 流向线 连接点 * 例:求给定半径R的圆面积和圆周长。 算法: 圆面积 S=π* R2 圆周长 L=2*π*R 开始 输出 S、L的值 结束 输入半径R π*R*R ?S 2*π*R ?L 顺序 (2)用流程图表示算法 * 例:求给定数R的绝对值。 算法: |R|= R R≥0 -R R<0 开始 输出 S的值 结束 输入R R ?S -R ?S R≥0 Y N 选择 * 求 S=1+2+3+......+100 0?s; s+1?s s+2 ?s ...... s+100 ?s 0?s s+i ?s(循环体) (i=1,2,...,100) * 例: 给定K值,求T=1+2+3+…+K。 K=5,T=0 I=1:T=0+1=1,I=1+1=2 I=2:T=1+2=3,I=2+1=3 I=3:T=3+3=6,I=3+1=4 I=4:T=6+4=10,I=4+1=5 I=5:T=10+5=15,I=5+1=6 0 ? T T+I? T(I=1,2,3,…K) 开始 输出 T 的值 结束 输入K T+I ?T I+1 ?I I≤K Y N 1?I,0 ?T 循环 * 由于流程线的任意转向性,传统流程图无法保证自顶向下的程序设计,使模块之间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值