一切复杂的逻辑都是有简单的到复杂的,近来项目中涉及一下复杂的操作,所以今天复习一下选在排序法和冒泡排序法。
选择排序法:
//选择排序
public void xuanZe() {
int[] arr1={12,10,5,67,45,67,90,32,12,34,67};
for(int i=0;i<arr1.length;i++){
for(int j=0+i;j<arr1.length-i-1;j++){
if(arr1[i]>arr1[j]){ //i=0,拿第一个数12,和后面的每一个数进行比较,
int a=arr1[j]; //比较交换位置后,第一个数为最小数
arr1[j]=arr1[i]; //i=1,拿第二个数字比较,第二个为第二小的数字
arr1[i]=a;
}
}
}
//遍历输出
for (int i : arr1) {
System.out.print(i+" ");
}
}
输出结果为:
冒泡排序法:
//冒泡排序
public void maoPao(){
int[] arr2={23,32,45,21,43,34,67,59,87};
for(int i=0;i<arr2.length-1;i++){ //最多做n-1次排序,所以这里是i<arr2.length-1
for(int j=0;j<arr2.length-1-i;j++){
if(arr2[j]>arr2[j+1]){ //将最大的数字排到最后,以此类推
int a=arr2[j+1];
arr2[j+1]=arr2[j];
arr2[j]=a;
}
}
}
for (int i : arr2) {
System.out.print(i+" ");
}
}
输出结果为: