版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第17、26套的填空题 从从1到到n 选出选出关键值最(大)小关键值最(大)小的记录的记录,交换到,交换到第一个位置第一个位置上,然后从上,然后从2到到n选选 出键值最(大)小的记录,交换到第出键值最(大)小的记录,交换到第 二个位置上,二个位置上,.54 71 58 29 3154 71 58 29 3154 71 58 29 3154 71 58 29 31i=0初态初态k=0数组下标数组下标 0 1 2 3 4j=1k=0j=2k=0j=3k=3j=4k!=i,交换交换第一趟第一趟互换互换i=0判断判断ajak?用选择法对数组用选择法对数组 int a5= 54,71,58,29,31
2、进行进行k=jk=1j=2i=1 29 71 58 54 31j=3k=2i=1第二趟第二趟 29 71 58 54 3129 71 58 54 31i=1k=3 j=429 71 58 54 31i=1k=4k!=i,交换交换互换互换29 31 58 54 71判断判断ajak?k=jk=jk=j29 31 58 54 71i=2k=2j=329 31 58 54 71i=2k=3j=429 31 54 58 71互换互换第三趟第三趟k!=i,交换交换i=3k=3j=4k =i,不交换不交换第四趟第四趟判断判断ajak?(递增递增)q(1) 从从n个数的序列中选出最小的数,与第个数的序列中选
3、出最小的数,与第1个数交个数交换位置;换位置;q(2) 除第除第1个数外,其余个数外,其余n-1个数再按个数再按(1)的方法选出的方法选出次小的数,与第次小的数,与第2个数交换位置个数交换位置;q(3) 重复重复(1)n-1遍,最后构成递增序列。遍,最后构成递增序列。p外循环为外循环为 :控制:控制排序趟数排序趟数p内循环为内循环为 :第:第i趟排序过程中的趟排序过程中的下标变量下标变量for(i=0;in-1;i+) k=i; for(j=i+1;jaj) k=j; if(k!=i) t=ai;ai=ak;ak=t;(由小到大排序)493641651178366536415636416541
4、3641561178363641491156492525251149495611111125252525交交 换换 排排 序序“ 冒泡冒泡”排序法排序法特点:逐个对数组中每相邻二数进行比较,若条件满特点:逐个对数组中每相邻二数进行比较,若条件满 足,则互相交换,否则保持原位置不变。足,则互相交换,否则保持原位置不变。若有若有n个数据,需要进行个数据,需要进行i=n-1轮比较轮比较 。每轮中比较。每轮中比较的次数为的次数为j=n-i+1 次。次。排序过程:(设数据存于排序过程:(设数据存于A数组中,数组中,n个数据,按递增个数据,按递增 次序排序)次序排序)冒泡法排序for(i= 1 ; i n
5、 ; i+) ; jaj+1) t=aj;aj=aj+1;aj+1=t;关键代码:冒泡程序(上机19、52套编程题)补充知识一:查找补充知识一:查找查找的方法很多。查找的方法很多。如:如:顺序查找、二分法查找顺序查找、二分法查找等等。等等。1、顺序查找:、顺序查找: 最简单的查找方法,基本思想是利用循最简单的查找方法,基本思想是利用循环顺序扫描整个数组,依次将每个元素环顺序扫描整个数组,依次将每个元素与待查找值比较,直至找到或找不到。与待查找值比较,直至找到或找不到。 对于无序数组,顺序查找是唯一可行的办法对于无序数组,顺序查找是唯一可行的办法 对大批量数据用顺序查找占机器时间较多。对大批量数
6、据用顺序查找占机器时间较多。2、二分法查找、二分法查找/折半查找:折半查找:二分法查找的条件:二分法查找的条件:必须是有序数列,即数组中的各必须是有序数列,即数组中的各元素已按数值大小按递增或递减元素已按数值大小按递增或递减次序排列!次序排列!查找过程:查找过程:(1) 将数列对分,找出中间数据将数列对分,找出中间数据(2) 用此数据与要查的数据比较用此数据与要查的数据比较(3) 数值相等则结束查询,否则确定要查的数数值相等则结束查询,否则确定要查的数据所在区间,逐步缩小查找范围,每次将据所在区间,逐步缩小查找范围,每次将数列区间缩小一半,直到找到或找不到为数列区间缩小一半,直到找到或找不到为
7、止。止。 ( 08, 14, 23, 37, 46, 55, 68, 79, 91 )( 08, 14, 23, 37, 46, 55, 68, 79, 91 )( 08, 14, 23, 37, 46, 55, 68, 79, 91 )( 08, 14, 23, 37, 46, 55, 68, 79, 91 )( 08, 14, 23, 37, 46, 55, 68, 79, 91 )lowmid( 08, 14, 23, 37, 46, 55, 68, 79, 91 )lowmidmidlowmidmidlowhigh= mid-1highhighhigh 折半查找(二分法查找)折半查找(
8、二分法查找)highlow( 08, 14, 23, 37, 46, 55, 68, 79, 91 )midlowhigh 下标下标 0 1 2 3 4 5 6 7 8 折半查找1,5,6,9,11,17,25,34,38,41下界下界lowlow上界上界up中值中值mid共有10个已排好序的数据:查找9。 up=9 low=0 mid=(up+low)/2=4查找范围: up=3 low=0 mid=(up+low)/2=1 up=3 low=2 mid=(up+low)/2=2 up=3 low=3 mid=(up+low)/2=3折半查找程序#include main( ) int up
9、=9, low=0, mid, found=0, find; int a10=1, 5, 6, 9, 11, 17, 25, 34, 38, 41; scanf(%d , &find); printf(n ); while (up=low & !found) mid=(up+low)/2; if(amid=find) found=1; break; else if(amidfind) up=mid-1; else low=mid+1; if(found) printf(found number is %dth mid); else printf(no found );补充知识二
10、:数组元素的插入、删除补充知识二:数组元素的插入、删除1、插入数据、插入数据 在有序数组中插入数据后,数组仍然有序。在有序数组中插入数据后,数组仍然有序。 要求数组有足够的空间。要求数组有足够的空间。前提:被操作数组已经是有序数组,操作前前提:被操作数组已经是有序数组,操作前后不改变数组的有序性后不改变数组的有序性 插入过程:插入过程:(1) 确定数据插入位置确定数据插入位置(2) 从最后一个元素开始逐个后移,直从最后一个元素开始逐个后移,直到将第到将第i个位置腾出。个位置腾出。 (ai+1=ai)(3) 将数据插入到指定下标元素位置中将数据插入到指定下标元素位置中 插入运算插入运算ai-1.a1a0alength ai+1ai x ai-1. a1 a0 ai ai+1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县级脱贫攻坚责任制度
- 2025年广州市第一人民医院护理文员招聘14人备考题库及参考答案详解1套
- 火力发电厂环保责任制度
- 检测单位质量责任制度
- 生态环保责任制度模板
- 火灾消防安全管理责任制度
- 村委干部包片责任制度
- 医院目标管理责任制制度
- 2025年民航上海医院(瑞金医院古北分院)事业编制公开招聘62人备考题库及答案详解1套
- 超市电梯维护责任制度
- 中国航空油料集团有限公司2026 届校园招聘笔试备考题库及答案解析
- XX区实验初级中学2026年春季学期校园意识形态工作方案
- 基于遥感技术的生态监测智能方案
- 2026黑龙江省交通运输厅所属事业单位招聘86人考试参考题库及答案解析
- 2026及未来5年中国银行资产托管行业市场运营态势及投资前景研判报告
- 城市供水管网巡检与维修操作手册(标准版)
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 沙洲电厂“1014”电气误操作全厂停电事故通报
- 肝硬化患者护理查房
- 下肢静脉曲张的护理
- 食品质量与安全第一章绪论
评论
0/150
提交评论