选择排序:
- 算法原理
简单来说就是每次循环,选出最大的数和最小的数放在第一个位置。
功能实现代码:
int[] arr={5,2,1,3,4,9,6,7,8};
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
案例:
package test1;
public class Test1 {
public static void main(String[] args) {
int[] arr={5,2,1,3,4,9,6,7,8};
int sum=0;
System.out.println("初始数组顺序:");
printArr(arr);
System.out.println();
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
++sum;
System.out.println("第"+sum+"次循环");
printArr(arr);
System.out.println();
}
}
private static void printArr(int[] arr) {
for(int i:arr){
System.out.print(" "+i+" ");
}
}
}
运行结果:
初始数组顺序:
5 2 1 3 4 9 6 7 8
第1次循环
1 5 2 3 4 9 6 7 8
第2次循环
1 2 5 3 4 9 6 7 8
第3次循环
1 2 3 5 4 9 6 7 8
第4次循环
1 2 3 4 5 9 6 7 8
第5次循环
1 2 3 4 5 9 6 7 8
第6次循环
1 2 3 4 5 6 9 7 8
第7次循环
1 2 3 4 5 6 7 9 8
第8次循环
1 2 3 4 5 6 7 8 9
第9次循环
1 2 3 4 5 6 7 8 9