冒泡排序
第一个跟第二个比较,大了就交换值,第二又跟第三个比较,依次进行下去,进行数组长度减一次。
排序前:[6, 5, 4, 3, 2, 1]
[5, 4, 3, 2, 1, 6]//第一轮
[4, 3, 2, 1, 5, 6]//第二轮
[3, 2, 1, 4, 5, 6]//第三轮
[2, 1, 3, 4, 5, 6]//第四轮
[1, 2, 3, 4, 5, 6]//第五轮
排序后:[1, 2, 3, 4, 5, 6]
代码如下:
import java.util.Arrays;
public class mppx {
public static void main(String[] args) {
int[] a = { 6, 5, 4, 3, 2, 1 };//也可以使用随机数random
int b;
System.out.println("排序前:" + Arrays.toString(a));
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {//减i只是为了美化代码,目的是让已经比较过的数不在参加比较
if (a[j] > a[j + 1]) {
b = a[j];//交换值
a[j] = a[j + 1];
a[j + 1] = b;
}
}
System.out.println(Arrays.toString(a));
}
System.out.println("排序后:" + Arrays.toString(a));
}
}
选择排序
第一个跟后面所有的数比较,大了就把后面中最小的放在第一个,再跟后面剩下的所有比较,依次进行下去,进行数组长度减一次。
排序前:[6, 5, 4, 3, 2, 1]
[1, 6, 5, 4, 3, 2]
[1, 2, 6, 5, 4, 3]
[1, 2, 3, 6, 5, 4]
[1, 2, 3, 4, 6, 5]
[1, 2, 3, 4, 5, 6]
排序后:[1, 2, 3, 4, 5, 6]
代码如下
import java.util.Arrays;
public class ds {
public static void main(String[] args) {
int[] a = { 6, 5, 4, 3, 2, 1 };//也可以使用随机数random
int b;
System.out.println("排序前:" + Arrays.toString(a));
for (int i = 0; i < a.length - 1; i++) {
for (int j = i+1; j < a.length; j++) {
if (a[i] > a[j]) {
b = a[i];//交换值
a[i] = a[j];
a[j] = b;
}
}
System.out.println(Arrays.toString(a));
}
System.out.println("排序后:" + Arrays.toString(a));
}
}



