冒泡排序
public class Demo07 {
public static void main(String[] args) {
int[] a = {52,32,62,42,84,26,35,47,65};
int[] ints = sortArray(a);
System.out.println(Arrays.toString(ints));
}
/*
比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置每一次比较,都会产生出一个最大,或者最小的数字;
下一轮则可以少一次排序!
依次循环,直到结束!
*/
public static int[] sortArray(int[] arrays){
//冒泡排序
int temp = 0;//定义一个临时变量
for (int i = 0; i < arrays.length-1; i++) {//外层循环,判断我们需要循环多少次
for(int j = 0;j < arrays.length-1-i;j++){//内层循环,比较大小
if(arrays[j+1] > arrays[j]){//应用临时变量进行交换
temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
}
}
return arrays;
}
}
冒泡排序优化
public class Demo07 {
public static void main(String[] args) {
int[] a = {52,32,62,42,84,26,35,47,65};
int[] ints = sortArray(a);
System.out.println(Arrays.toString(ints));
}
/*
比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置每一次比较,都会产生出一个最大,或者最小的数字;
下一轮则可以少一次排序!
依次循环,直到结束!
*/
public static int[] sortArray(int[] arrays){
//冒泡排序
int temp = 0;//定义一个临时变量
boolean flag = false;//定义一个标志位
for (int i = 0; i < arrays.length-1; i++) {//外层循环,判断我们需要循环多少次
for(int j = 0;j < arrays.length-1-i;j++){//内层循环,比较大小
if(arrays[j+1] > arrays[j]){//临时变量进行交换
temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
flag = true;
}
}
if(flag == false){
break;
}
}
return arrays;
}
}