分析:
主要运用循环嵌套
冒泡排序:
import java.util.Arrays;
public class Bubbling_Sort {//冒泡排序
public static void main(String[] args) {
int [] arr = new int[]{5,4,3,2,1};
//4 3 2 1 5第一趟
//3 2 1 4 5第二趟
//2 1 3 4 5第三趟
//1 2 3 4 5第四趟
int t=0;
//外层循环控制排序次数,最多arr.length-1(4)次,
for(int j=0;j<arr.length-1;j++) {
//内层循环:每次将相邻的元素进行比较,将较小的放到前边
for (int i = 0; i < arr.length-1-j; i++) {
if (arr[i] > arr[i + 1]) {
t = arr[i];//交换位置t是中间变量
arr[i] = arr[i + 1];
arr[i + 1] = t;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
选择排序:
import java.util.Arrays;
public class Selection_Sort {//选择排序
public static void main(String[] args) {
int [] a = {10,9,8,7,6,5,4};
//9 10 8 7 6 5 4
//8 10 9 7 6 5 4
//7 10 9 8 6 5 4
//6 10 9 8 7 5 4
//5 10 9 8 7 6 4
//4 10 9 8 7 6 5
//4 9 10 8 7 6 5
//4 8 10 9 7 6 4
//...
//...
//交换次数太多,优化后只需要交换最小的元素
//未优化代码
int t=0;
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
//优化后代码
// int min=0,t;//min用来记录较小的元素的(索引)index
// for(int i=0;i<a.length-1;i++){
// for(int j=i+1;j<a.length;j++){
// if(a[i]>a[j]){
// min=j;
// }
// }
// t=a[i];
// a[i]=a[min];
// a[min]=t;
// }
// System.out.println(Arrays.toString(a));
}
}