问答题 【说明】数据排序。将给定的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语言的掌握情况,两空亦可互相对照,难度不大。