选择排序与冒泡排序的区别
选择排序:
public static void main(String[] args){
int[] a=new int[]{5,2,9,13,-7}
//选择排序法,就是把小的放在前面,每次循环只和第一个数交换
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
int temp=a[j];
a[j]=a[i]
a[i]=temp;
}
}
}
}
冒泡排序:
public static void main(String[] args){
int arr[]= {1,4,13,7,10,-4,20};
//控制循环次数
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:arr) {//遍历 打印排序后数组
System.out.println(i);
}
}
}
区别:
冒泡排序当循环开始从第一个数开始,依次比较相邻的两个数(先比较第一个和第二个数,然后是第二个数和第三个数以此类推),每一轮循环都找出一个最大值(或最小值)放在最后,每一轮循环后循环体内数组里剩余的元素减少一个,直至循环结束。
选择排序循环从下标为0的开始,下标为0的这个数与后面的n-1个进行比较;找出最小(或最大)的放在下标为0的这个位置;第二次从下标为1的开始比较;查询剩下的最大或者最小值;放在下标为1的位置;以此类推;直到排序完成