冒泡排序
冒泡排序就是一个int型数组,用双重for循环把最大的数交换到最后,成一个升序或是降序的数组。每次每一次都是相邻两个数比,如果前面的数比后面的数大就交换位置。
//冒泡排序
public static void main(String[] args) {
int [] arr={5,4,3,2,1};
for (int i = 1; i <= arr.length-1; i++) {//外层循环表示比较的轮数
for (int j = 0; j <=arr.length-1-i ; j++) {//内层循环:前后两数相比,交换
if (arr[j]>arr[j+1]){//如果前面的数大于后面的数就交换位置
int t=arr[j];//声明一个数来接收第一个数的值
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
for (int a :arr) {//用增强for循环来输出升序后的数组
System.out.print(a+" ");
}
}
运行结果
选择排序
先定义一个默认最小的下标,然后和数组里面的每一个数比较,如果这个数比默认的数小,就把默认最小的下标换成这个数的下标。
//选择排序
public static void main(String[] args) {
int [] arr={12,4,6,2,1,7,8,9};
for (int i = 0; i < arr.length - 1; i++) {//比较的轮数 len-1
int index=i;//记录每一轮循环中最小数的下标
for (int j = i; j <arr.length ; j++) {
if (arr[j]<arr[index]){
index=j;
}
}
//交换:一开始假设最小的数和实际最小的数,进行交换
int t=arr[i];
arr[i]=arr[index];
arr[index]=t;
}
for (int a : arr) {
System.out.print(a+" ");
}
}
运行结果