问答题
【说明】数据排序。将给定的n个整数分别按照升序和降序进行排列。
class SortInt_1
{
int i, j, k, temp;
void SortInt(int a1, a2[]){//升序排序
for(i=0; i<a1-1; i++){
k=i;
for(j=i+1 ;j<a1 ;j++)
if ({{U}} (1) {{/U}}) k=j;
if(k!=i){
temp=a2[i];a2[i]=a2[k];a2[k]=temp;
}
}
}
}
class Sortlnt_2{{U}} (2) {{/U}}
{
int i, j, k, temp;
void Sortlnt(int a1,a2[]){//降序排序
for(i=0;i<a1-1 ;i++) {
k=i;
for(j=i+1 ;j<a1 ;j++)
if ({{U}} (3) {{/U}}) k=j;
if(k!=i){
temp=a2[i];a2[i]=a2[k];a2[k]=temp;
}
}
}
}
Class TestOverLoad {
Public static void main(String args[])
{
int a[]={10,55,100,35,87,90,100,16};
Sortlnt_1 newlnt1={{U}} (4) {{/U}};
Newlnt1. SortInt(a. length, a);//调用SortInt_1类的方法
System. out. println("升序排列的数据");
For(int i=0;i<8;i++)
System. out. print(a[i]+" ");
system. out. println();
SortInt_2 newInt2=new sortint_2(); //创建类SortInt_2的对象
{{U}} (5) {{/U}};
System. out. println("降序排列的数据: ");
For(int i=0;i<8;i++)
System. out. print(a[i]+" ");
}
}
【正确答案】
【答案解析】[解析]
(1) a2[j]a2[k]
选择排序的判断条件,k是最小元素的下标。
(2) extends SortInt_1
类的多态,SortInt2由类SortInt1派生而来。
(3) a2[j]>a2[k]
选择排序的判断条件,k是最大元素的下标。
(4) new SortInt_1()
创建类SortInt1的对象,再调用SortInt1类的方法进行升序排序。
(5) Newint2.SortInt(a. length, a)
调用SortInt2类的方法,实现降序排序。
本题采用选择排序的方法,第1、3空考查对算法的掌握,两空可互相对照,第2、4、 5空考查对Java语言的掌握情况,两空亦可互相对照,难度不大。