计算机导论第6章算法与数据结构.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机导论》 Introduction of Computer Science 第6章 算法与数据结构 6.1 算法概述 6.2 经典排序算法 6.3 算法策略 6.4 数据结构概述 6.5 线性表 6.6 树和图 6.1 算法概述 6.1算法概述 6.2 经典排序算法 6.3 算法策略 6.4 数据结构概述 6.5 线性表 6.6 树和图 6.1算法概述(定义) 计算机解题一般可分解成若干操作步骤,通常把对特定问题的求解步骤的描述称为算法。 程序可以看作是用计算机语言描述的算法。 6.1算法概述(特性) 算法的五个重要特性 有穷性:一个算法必须保证执行有限步后结束; 确定性:算法的每一步骤必须有确切的定义; 可行性:算法原则上能够精确地运行,且人们用笔和纸做有限次运算后即可完成。 输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件; 输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 6.2 经典排序算法 6.1 算法概述 6.2 经典排序算法 6.2.1 冒泡排序 6.2.2 插入排序 6.2.3 快速排序 6.3 算法策略 6.4 数据结构概述 6.5 线性表 6.6 树和图 6.2 经典排序算法 排序问题就是将一组可比较大小的元素按从小到大(或从大到小)的顺序排列。 现在主要的算法重要有: 比较排序算法 冒泡排序 选择排序 插入排序 快速排序 堆排序 基数排序 基数排序 桶排序 6.2 经典排序算法(冒泡排序1/5 ) 冒泡排序是最简单的排序方法 基本思想: 将待排序的元素看作是竖着排列的“气泡”,较小的元素相当于比较轻的气泡,从而要不断往重的气泡上面浮。在冒泡排序算法中我们要对这个“气泡”序列进行若干轮处理。每一轮处理都自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序出现“轻”的元素在下面,就交换它们的位置。显然,处理一轮之后,“最轻”的元素就浮到了最高位置;处理第二轮之后,“次轻”的元素就浮到了次高位置。在进行第二轮处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i轮处理时,不必检查第i位以上的元素,因为经过前面i-1轮的处理,它们已正确地排好序。 6.2经典排序算法(冒泡排序 2/5) 冒泡排序算法步骤如下: Step 1:对于数组item中的1至n个数据,先将第0位和第1位数据进行比较,如果item[0]<item[1],则两个数交换位置。然后比较第1位和第2位数据;依次类推,直到第n-1位数据和第n-2位数据进行比较交换,这称为一趟冒泡。这一趟最明显的效果是:将最大的数据传到了第n-1位。 Step 2:然后,对2至n个数据进行同样操作,则具有次大值的数据被安置在第n-2位上。 Step 3:重复以上过程,每次的移动都向最终排序的目标前进,直至没有数据需要交换为止。 6.2 经典排序算法(冒泡排序 3/5) 冒泡排序程序代码: void BubbleSort (int item[],int length) { int i,j; /*定义两个整数变量 i,j*/ int temp; /*定义一个用于暂时存储一个数的整数变量*/ for(i=0;i<length;i++) /*length 为数组的长度*/ { /* 一趟冒泡 */ for(j=0;j<length-i-1;j++) { if(item[j]>item[j+1]) { /*当item[j]>item[j+1]时,item[j]与item[j+1]交换*/ temp=item[j]; /*将item[j]赋给temp*/ item[j]=item[j+1]; /* 将item[j]赋给item[j+1] */ item[j+1]=temp; /*将将item[j+1]赋给temp*/ } } } 6.2 经典排序算法(冒泡排序 4/5) 举例:依然以绪论中的排序任务为例:将3、74、23、89、22、99、65、109、55、45十个数按从小到大的顺序排列。 冒泡排序算法产生以下的排序过程: 第1遍:3、

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档