选择排序核心思想:
扫描所有元素,得到最小的元素,并将最小的元素与左边第一个被元素进行交换。再次扫描,除第一位置的所有元素,得到最小的元素,与左边第二的元素进行交换,以此类推。选择排序法是每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
代码实现:
/**
* 类名:SelectArray<br>
* 功能:TODO(选择排序)<br>
* 作者:java战士<br>
* 日期:2018/11/3<br>
* 版本:v1.0.0
* 历史修订:
*/
public class SelectArray {
//数组
private long[] arr;
//数组中有效数据大小
private int elems;
//默认构造函数
public SelectArray() {
arr=new long[50];
}
public SelectArray(int max){
arr=new long[max];
}
//插入数据
public void insert(long value){
arr[elems]=value;
elems++;
}
//显示数据
public void display(){
for (int i=0;i<elems;i++){
System.out.print(arr[i]+",");
}
System.out.println();
}
//选择排序
public void selectSort(){
int min=0;
long temp=0l;
for (int i=0;i<elems-1;i++){
min=i;
for (int j=i+1;j<elems;j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
}
//选择排序测试类
public class TestSelectArray {
public static void main(String[] args){
SelectArray selectArray = new SelectArray();
selectArray.insert(26);
selectArray.insert(15);
selectArray.insert(78);
selectArray.insert(02);
selectArray.insert(64);
selectArray.insert(45);
selectArray.display();
selectArray.selectSort();
selectArray.display();
}
}