选择排序(Selection sort)
是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素
,存放在序列的起始位置,直到全部待排序的数据元素排完。
package Sort;
/**
* 选择排序
*
*/
public class Select_Sort {
int[] a;
public Select_Sort() {
a=new int[]{8,19,2,3,100,99,1000,888,-1,0};
}
public Select_Sort(int size) {
a=new int[size];
}
public Select_Sort(int[] a) {
this.a=a;
}
//返回从开始到找到最小数的位置的索引
public int getMinIndex(int start) {
int intdex=start;
int min=a[start];
for(int i=start+1;i<a.length;i++) {
if(min>a[i]) {
min=a[i];
intdex=i;
}
}
return intdex;
}
//排序
public void selectSort() {
for(int i=0;i<a.length;i++) {
int index=getMinIndex(i);
if(index!=i) {
a[i]=a[i]^a[index];
a[index]=a[i]^a[index];
a[i]=a[i]^a[index];
}
}
}
//打印
public void disPlay() {
for (int e : a) {
System.out.print(e+"\t");
}
System.out.println();
}
public static void main(String[] args) {
Select_Sort sort = new Select_Sort();
System.out.println("打印前的顺序");
sort.disPlay();
System.out.println("打印后的顺序");
sort.selectSort();
sort.disPlay();
}
}