JAVA编程题,求大神解答~
题目:将数组中值按从大到小的顺序输出publicclassXT00205{publicstaticvoidmain(Stringargs[]){inti,j,temp;i...
题目:将数组中值按从大到小的顺序输出
public class XT00205 {
public static void main(String args[]) {
int i,j,temp;
int a[]={25,35,10,59,-22,19,50,24,53,-2};
for (i=0;i<a.length-1;i++)
for (j=0;j<a.length-1-i;j++)
if (a[j]>a[j+1]) {
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
System.out.println("由小到大排序的结果是:");
for (i=0;i<a.length;i++)
System.out.println(a[i]);
}//end main()
}//end class
请问为什么要设置2层for循环呢??求详解>o<!! 展开
public class XT00205 {
public static void main(String args[]) {
int i,j,temp;
int a[]={25,35,10,59,-22,19,50,24,53,-2};
for (i=0;i<a.length-1;i++)
for (j=0;j<a.length-1-i;j++)
if (a[j]>a[j+1]) {
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
System.out.println("由小到大排序的结果是:");
for (i=0;i<a.length;i++)
System.out.println(a[i]);
}//end main()
}//end class
请问为什么要设置2层for循环呢??求详解>o<!! 展开
展开全部
外循环循环10次,每次把第一个参数传入
内循环循环10次,每次都会进行和数组其他数经行比较大小。
10次循环后就把最大的数移到数组最后面,并且循环一次遍历的范围减一
这样循环10次后,数组就变成有小到大。
内循环循环10次,每次都会进行和数组其他数经行比较大小。
10次循环后就把最大的数移到数组最后面,并且循环一次遍历的范围减一
这样循环10次后,数组就变成有小到大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两层for循环 那个叫冒泡排序 对数组中的元素进行排序 是一种排序算法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
断点打好,一步步跑一下不就知道为什么了
内层循环比较相邻两个数字的大小,然后符合条件的做交换,这样做一次最大的就被放到了最后。
外层循环控制上面取最大数的操作,依次把剩下的里面的最大数放到后面。
内层循环比较相邻两个数字的大小,然后符合条件的做交换,这样做一次最大的就被放到了最后。
外层循环控制上面取最大数的操作,依次把剩下的里面的最大数放到后面。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
冒泡排序public class MySort {
public static void main(String[] args) {
MySort sort = new MySort();
int[] arr = new int[]{3,22,11,5,400,99,20,22,5};
sort.sort(arr);
for(int i : arr){
System.out.print(i+",");
}
}
public void sort(int[] targetArr){//小到大的排序
int temp = 0;
for(int i = 0;i<targetArr.length;i++){
for(int j = i;j<targetArr.length;j++){
if(targetArr[i]>targetArr[j]){
/*//方法一:
temp = targetArr[i];
targetArr[i] = targetArr[j];
targetArr[j] = temp;
//方法二:
targetArr[i] = targetArr[i] + targetArr[j];
targetArr[j] = targetArr[i] - targetArr[j];
targetArr[i] = targetArr[i] - targetArr[j];*/
}
}
}
}
}
public static void main(String[] args) {
MySort sort = new MySort();
int[] arr = new int[]{3,22,11,5,400,99,20,22,5};
sort.sort(arr);
for(int i : arr){
System.out.print(i+",");
}
}
public void sort(int[] targetArr){//小到大的排序
int temp = 0;
for(int i = 0;i<targetArr.length;i++){
for(int j = i;j<targetArr.length;j++){
if(targetArr[i]>targetArr[j]){
/*//方法一:
temp = targetArr[i];
targetArr[i] = targetArr[j];
targetArr[j] = temp;
//方法二:
targetArr[i] = targetArr[i] + targetArr[j];
targetArr[j] = targetArr[i] - targetArr[j];
targetArr[i] = targetArr[i] - targetArr[j];*/
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询