两者之间的不同
冒泡:从左到右,数组中相邻的两个元素进行比较,将较大的放到后面
选择:从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮。
两者之间的区别
1)冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;
(2)冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;
(3)冒泡排序是通过数去找位置,选择排序是给定位置去找数;
代码举例
public class maopao {
public static void main(String[] args) {
int[] num= {4,6,3,2,1};
bianli(num);
System.out.println("------------");
xuanze(num);
bianli(num);
}
public static void maopao(int[] arr) {//冒泡排序
for(int i=0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-i-1;j++) {
if(arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
public static void bianli(int[] arr) {//遍历
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]);
}
}
public static void xuanze(int[] arr) {//选择排序
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[j]<arr[i]) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}