排序问题 同步练习
知识检测
有序列插入排序就是把一个新的数据插入到已经排好顺序的数据列中,具体做法如下:首先确定要插入的数据在原有序列中应占位置的序号(该数据应满足小于(或大于)或等于原有序列中这个位置右边的数据,大于(或小于)其左边位置上的数据),将这个位置空出来,将新数据插进去。请用以上知识解决以下1-2题。
1.在使用计算机处理数据的过程中,往往需要对数据进行排序,所谓排序就是( )21世纪教育网
A、把杂乱无章的数据变为从小到大排列的数据
B、把杂乱无章的数据变为从大到小排列的数据
C、把杂乱无章的数据变为有序的数据
D、以上说法都错误
2.如图2-3-1是将一个新数据A插入到一个由小到大的有序列{R[1],R[2],…R[n]}的算法流程图,请回答以下问题:21世纪教育网
(1)j的初始值为n,说明 ;
(2)循环体R[j+1]:=R[j]的意义是 ;
(3)说明 ;
(4)两个循环体的终止条件中与A直接插入排序的实质是使用有序列插入排序法,其具体做法如下:先将第一个数作为数列中的数,然后将第二个数插入到这个数列中,使之按要求排列,以后把每一个数插入到已排序的数列中,直到所有数都插入完为止。请用以上知识解决以下3-5题。
3.用直接插入排序法将无序列数据列{49,38,65,97,76,13,27}按从大到小的顺序排为有序列,第5次有序列插入排序的结果为( )
A、{65,49,38,97,76,13,27} B、{97,49,65,38,76,13,27}
C、{76,49,38,65,97,27,13} D、{97,76,65,49,38,13,27}
4.用直接插入排序法对1,2,3,4,8,5,7,6,9,13,21,…共21个数按从小到大排序最多需要经过( )次有序列插入排序过程就可完成。
A、20 B、19 C、16 D、15
能力提高
输入50个实数,设计算法流程图,将它们按照从大到小的顺序排列,并输出结果.
2.请用选折排序法将无序列{15,28,-12,8.3,-1.30,21,13}按照从大到小的顺序排列,画出算法流程图.
技能培养
1.你有10个朋友的手机号码要输入电话本中,请你按照某一规则将这10 个手机号码排序,绘出算法流程图.
2.你能在实际生活中找到需要排序的离子吗?试着用计算机帮助解决.
21世纪教育网
拓展空间
查阅资料,找几种不同的排序的算法,了解算法的推理,试着画出算法流程图,比较它们的优劣.
21世纪教育网
答案:
知识检测: