问答题
18分
打开考生文件夹proj3下的工程proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请在主程序文件中写出成员函数X...
打开考生文件夹proj3下的工程proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请在主程序文件中写出成员函数XArray::sort()的定义,经补充后运行程序,得到的输出结果为:
3 6 5 4 16 10 20 15
3 4 5 6 10 15 16 20
注意:只能在"//********333********"和"//********666********"之间填入若干语句,不得改动程序中的其他部分。
3 6 5 4 16 10 20 15
3 4 5 6 10 15 16 20
注意:只能在"//********333********"和"//********666********"之间填入若干语句,不得改动程序中的其他部分。
参考解析: 【参考答案】
int temp;
for (int i = 0; i < size; ++i)
{
for (int j = i; j < size; ++j)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
【考点分析】
本题主要考查XArray类,其中涉及构造函数,排序函数,析构函数。常用的排序算法有冒泡排序,选择排序,插入排序,堆排序等。
【解题思路】
题目要求对整数序列按非递减排序要排序就必须要有比较,所以定义两个下标i和j,按题目递增排序要求,当*a[i]比*a[j]大时就交换其值,利用中间变量temp来实现。
【解题宝典】
排序算法有多种,其基本思想是相同的,即先遍历,后比较,再交换。不同之处在于它们遍历数列的顺序不同。考生可选择一至两种算法重点理解。
【举一反三】考生可根据第4套的综合应用题进行练习。