一个简单的冒泡排序! 给那些即将参加面试的各位农友。
^-^
public class Text1 {
public static void main(String[] args) {
//随机乱序数组赋给a
int[] a =random(); //调用random获得随机数组
System.out.println(Arrays.toString(a)); //打印产生的随机数
System.out.println("==================="); //输出打印隔行
sort(a); //调用 sort 方法对数组a排序
System.out.println("==================="); //输出打印隔行
System.out.println(Arrays.toString(a)); //输出打印排序后的数组
}
private static int[] random() { 随机产生数的方法
int len = 5+new Random().nextInt(6); 1.随机数组长度范围5+[0,6]
int[] a = new int[len]; 2.新建len长度的数组赋给a
for(int i=0; i<len;i++){ 3.遍历访问数组每个位置
a[i]=new Random().nextInt(100); 4.在每个位置放入100内随机整数
}
return a; 返回数组a
private static void sort(int[] a) { sort 方法
/* \
* 1.循环i从0到a.length 递增 \
* 2.循环j从a.length-1到>i递减 \
* 3.如果a[j]<a[j-1] -------- 排序方法
* 4.交换两个位置的值 /
* 5.显示a数组的值 /
*/ /
for(int i=0;i<a.length;i++){ for 循环遍历
boolean flag = false; // 判断 i ,j 是否需要交换位置 这里是 没有交换
for(int j=a.length-1;j>i;j--){
if(a[j]<a[j-1]){
int c=a[j];
a[j]=a[j-1];
a[j-1]=c;
flag=true;//交换 ] //这里交换
}
}
}
System.out.println(Arrays.toString(a)); //输出打印 改成字符串的数组
//不交换数据说明数据位置都是正确的
if(! flag) break; //如果 都不需要交换 跳出循环
}
}
}