思路:从头到尾依次和最后一位比较,把较大的值交换给最后一位,一轮循环后,最后一位即最大值,继续从头到尾和倒数第二位比较...
public class Demo{
public static void main(String[] args){
//生成10个随机数,放到数组中
int[] a = new int[10];
for(int i = 0; i < a.length; i++){
a[i] = (int)(Math.random() * (50 - 1 + 1) + 1);
}
//输出这10个随机数
for(int i = 0; i < a.length; i++){
System.out.println(a[i]);
}
//数组排序
for(int i = a.length -1 ; i > 0; i--){ //大致思路:双层循环,外层循环从数组尾开始,
for(int j = 0; j < i; j++){ //内层循环从头到尾,依次和最后一位比较,把大值
if(a[j] > a[i]){ //给到结尾,内层一轮循环后,最后一位即最大值,
int t = a[j]; //开始第二轮外层循环,结束后,倒数第二位即次大值
a[j] = a[i];
a[i] = t;
}
}
}
//输出排序后的10个随机数
System.out.println();
for(int i = 0; i < a.length; i++){
System.out.println(a[i]);
}
}
}
评论 (0)