冒泡排序
原理详解
- 简单介绍:每一次循环结束之后,都要找出最大的数据,也可以看成是一种排序。俩俩比较,大的放到右边
- 例如
代码实现
public class 冒泡排序 {
public static void main(String[] args) {
int num[] = {9, 8, 10, 7, 6, 0, 11};
int temp;
for (int i = num.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (num[j] > num[j + 1]) {
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
System.out.println(num[i]);
}
}
}
每一次输出最大的值
选择排序
详解
- 每次在参与排序的数据中选择出最小的和第一个交换位置
- 比冒泡排序更加有效率,不会做无用的排序
- 例如
代码实现
public class 选择排序 {
public static void main(String[] args) {
int[] arr = {3, 1, 6, 2, 5};
for (int i = 0; i < arr.length - 1; i++) {
//假设每次的第一个元素是最小的
int min = i;
//因为放到第一个,也就是说第二个下标开始位置是1
for (int j = i + 1; j < arr.length; j++) {
if (arr[j]<arr[min]){
min = j;
}
}
//min不等于i也就是说,第一个不是最小的,需要进行转换,将第一个和最小的元素换位置
if (min!=i){
int temp = 0;
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
for (int a:arr){
System.out.println(a);
}
}
}