选择排序
import java.util.Arrays;
public class XuanZe {
public static void main(String[] args) {
int [] a={30, 98, 69, 86, 33};
System.out.println(Arrays.toString(a));
System.out.println("========================");
sort(a);//排序方法
System.out.println("=========================");
System.out.println(Arrays.toString(a));
}
private static void sort(int[] a) {
for(int i=0;i<a.length;i++)
{
/* i
* i+1
* [30, 98, 69, 86, 33]
*/
//i到末尾,选择最小值位置的下标
int index=min(a,i);
//index位置的最小值交换到i位置
swap(a,i,index);
System.out.println(Arrays.toString(a)); }
}
private static void swap(int[] a, int i, int j) {
int t=a[i];
a[i]=a[j];
a[j]=t;
}
private static int min(int[] a, int i) {
int m=i;
//假设i位置最小
//找到j位置更小
for(int j=i+1;j<a.length;j++)
{
if(a[j]<a[m])
{
m=j;//把m定位到j位置
}
}
return m;
}
}
运行结果
[30, 98, 69, 86, 33]
========================
[30, 98, 69, 86, 33]
[30, 33, 69, 86, 98]
[30, 33, 69, 86, 98]
[30, 33, 69, 86, 98]
[30, 33, 69, 86, 98]
=========================
[30, 33, 69, 86, 98]