首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,实现函数sort(int A[],int n),用选择排序法把数组从大到小排序。 提示:选择排序法的思想是: (1)反复从还未排好的那部分线性表中选择出关键字
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,实现函数sort(int A[],int n),用选择排序法把数组从大到小排序。 提示:选择排序法的思想是: (1)反复从还未排好的那部分线性表中选择出关键字
admin
2021-07-02
98
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,实现函数sort(int A[],int n),用选择排序法把数组从大到小排序。
提示:选择排序法的思想是:
(1)反复从还未排好的那部分线性表中选择出关键字最小的节点;
(2)按照从线性表中选择出的顺序排列节点,重新组成线性表;
(3)直到未排序的那部分为空,则重新形成的线性表是一个有序的线性表。
补充函数sort(int A[],int n),实现选择排序。
注意:请勿改动主函数。
1 #include
2 #define N 10
3 void sort(int A[N],int n)
4 {
5
6 }
7 int main()
8 {
9 int A[N]={1,2,10,5,7,19,34,78,-3,8};
10 sort(A,10);
Ii for(int i=0; i
12 {
13 cout<
<<’ ’;
14 }
15 cout<
16 return 0;
17 }
选项
答案
1 int i,j ; 2 for (i=0;i
A[j+1]) //如果前面的数比后面的大则进行交换 7 { 8 int t=A[j];//做交换 9 A[j] =A[j+1]; 10 A[j+1] =t ; 11 } 12 } 13 }
解析
选择法的思路是:将相邻两个数比较,将小的调到前头。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组则会变成有序的,而且是由小到大的顺序。
[解题思路]
(1)数组A[N]中有n个数,进行n-1趟比较,在每一趟比较中两两比较的次数逐渐减少,比如若有6个数9,8,5,4,2,0。第一次将8和9对调,第二次将第2和第3个数(9和5)对调,……,如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经第一趟(共5次)后,已得到最大的数。然后进行第二趟比较,对余下的前面5个数按上法进行比较,经过4次比较,得到次大的数8。如此进行下去。可以推知,6个数要比较5趟。在第一趟中要进行两两比较5次,在第二趟中比4次,……第5趟比1次。因此设置两层循环,外层循环变量i从0变化大到n-1,内层循环变量j从0到n-j,在内层循环体内,比较相邻两数,如果前面比后面的大则交换。
(2)在内层循环体内,如果前面的元素比后面的元素大,则用一个临时变量记录前面的第i个元素,然后将第i+1个元素赋值给第j个元素,临时变量值赋给第j+1个元素,如此完成两个元素的交换。
转载请注明原文地址:https://kaotiyun.com/show/6afp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有两个关系R和S如下:由关系R通过运算得到关系S,则所使用的运算为
有如下4个语句:①cout<<’A’<<setfill(’*’)<<left<<setw(7)<<’B’<<endl;②cout<<setfill(’*’)<<left<<setw(7)<<’A’<<’B’<<endl;③co
下列关于函数模板的描述中,正确的是()。
下面程序中对一维坐标点类Point进行运算符重载#includeusingnamespacestd;classPoint{public:Point(intval){x=val;}Poin
若一个函数的原型为“int*Xfunl(intX,int&Y,charz);”,则该函数的返回值类型为()。
以下程序的输出结果是()。#include<iostream>usingnamespacestd;voidfun(char**q){++q;cout<<*q<<end1;}
数据库应用系统中的核心问题是()。
下列关于数据库设计的叙述中,正确的是()。
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正错误,使得程序通过运行。程序输出:5a}注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在∥
数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和()。
随机试题
下列解释不正确的一项是()。
Inanycomprehensiontextyouwillfindwordsthatyoudon’tknow,Youcan【C1】______themupinadictionary,ofcourse,【C2】_____
氟牙症的临床特征是四环素牙的临床特征是
某跨海大桥,上部结构为9m×50m+9m×50m+12m×50m三联等跨等截面预应力混凝土连续箱梁桥,横向为两个独立的单箱,梁高2.75m,单箱顶面宽为11.30m。箱梁采用移动式模架逐跨施工,整套设备从瑞士某公司引进。施工单位在施工组织设计中提出的模
某公路隧道长3000m,穿越的岩层主要由页岩和砂岩组成,设计采用新奥法施工,分部法开挖,复合式衬砌,洞口段由于洞顶覆盖层较薄,岩隙发育,开挖中地表水从岩石裂隙中渗入洞内,在施工过程中,隧道发生过规模不等的塌方。在隧道施工中,施工单位认真做好了四个方面的防尘
长城公司对在日后期间发现的差错进行会计处理后,应调减已编制的2007年的资产负债表“资产总计”项目金额( )万元。长城公司对在日后期间发现的差错进行会计处理后,应调减已编制的2007年的资产负债表“负债总计”项目金额( )万元。
关于物权与债权区别的说法,错误的是()。
人的价值在于()。
A、 B、 C、 C本句为询问技术员今天下午为什么来的Why疑问句。
TheOctopusiswrittenby
最新回复
(
0
)