int[] array = new int[10];
//生成随机数对象
Random random = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = random.nextInt(50);
System.out.print(array[i]+" ");
}
System.out.println("\n排序后:");
for (int i = 1; i < array.length; i++) {
//比较两个相邻的元素,较大的数往后冒泡
for (int j = 0; j < array.length - i; j++) {
if (array[j]>array[j+1]) {
//把第一个元素值保存到临时变量中
int temp = array[j];
//把第二个元素值保存到第一个元素中去
array[j] = array[j+1];
//把临时变量也就是第一个元素原值保存在第二个元素中去
array[j+1] = temp;
}
}
for (int j = array.length-i; j < array.length ; j++) {
System.out.print(array[j]+" ");
}
System.out.println();
}
//冒泡排序的基本思想是:
对比相邻的元素值,如果条件满足就交换元素值,把较小的元素移到数组前面,把大的元素移到后面,这样数组就像气泡一样从底部上升到顶部。
//实现过程:
在双层循环中实现,外层循环控制排序轮数,要排序数组长度-1次;内层循环用于对比临近两个元素的大小,以确定是否要交换位置,对比和交换次数依排序轮数而减少。
如图例所示:
转载于:https://blog.51cto.com/mazongfei/1907002