先总结啥选择排序的算法特点:
假设数组{a1,a2...an}a[0]为最小,查找到比a[0]小的的交换,选择排序永远是a[0]位置上的数和其他数据进行交换,这样就可以保证a[0]上是最小的数据。
看个图吧
Java实现选择算法:
结果:
The1line: 1348259
The2line: 1248359
The3line: 1238459
The4line: 1234859
The5line: 1234589
The6line: 1234589
public class SelectSort{
public static void swap(int[] arr,int a,int b){
int temp = arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
public static void main(String[] args)
{
int[] arr = {3,1,4,8,2,5,9};
for(int i=0;i<arr.length-1;i++){
for(int j = i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
swap(arr,i,j);
}
}
int h=i+1;
System.out.print("The" + h + "line: " );
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]);
}
System.out.println();
}
}
}