数组---冒泡排序和选择排序

时间:2023-02-18 11:53:56

一.冒泡排序

1.冒泡排序:两两比较
2.问题:将{69,24,80,57,13}按从小到大的顺序进行排序.
图解:
数组---冒泡排序和选择排序
3.代码:

//冒泡排序
public class Demo1 {
public static void main(String[] args) {
//静态初始化一个数组
int[] arr = {69,24,80,57,13};

//冒泡排序
//根据冒泡排序的特点,一共要进行arr.length-1次
for(int i = 0 ; i < arr.length-1 ; i ++){
//每次排序后减少一次比较次数
for(int j = 0 ; j < arr.length-1-i ; j ++){
//将较小数换到前面
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//遍历输出排序后的数组
for(int i = 0 ; i < arr.length ; i ++){
System.out.print(arr[i]+" ");
}
}
}

结果:
13 24 57 69 80

二.选择排序

1.选择排序:0索引依次和后面的索引进行比较,第一次比较完毕之后,最小值出现在了最小索处.同理,其他索引也是依次进行比较(从小到大排序)
2.问题:将{69,24,80,57,13}按从小到大的顺序进行排序.
图解:
数组---冒泡排序和选择排序
3.代码:

//选择排序
public class Demo2 {
public static void main(String[] args) {
//静态初始化一个数组
int[] arr = {69,24,80,57,13};

//选择排序
for(int i = 0 ; i < arr.length-1 ; i ++){
//将第i+1个数依次和后面的比较
for(int j = i+1 ; j < arr.length ; j ++){
//将较小数换到前面
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
//遍历输出排序后的数组
for(int i = 0 ; i < arr.length ; i ++){
System.out.print(arr[i]+" ");
}
}
}

结果:
13 24 57 69 80