package ch10;
/**
* 简单选择排序
* @author songjie
*
*/
public class SelectSort {
public static <T extends Comparable> boolean selectSort(T[] t){
if(t==null || t.length <= 1) return true;
for(int i = 0; i<t.length-1; i++){
int pos = selectMinKey(t, i);
T temp = t[i];
t[i] = t[pos];
t[pos] = temp;
}
return true;
}
/**
* 返回最小的元素的索引
* @param t
* @param start:开始的索引
* @return
*/
private static <T extends Comparable> int selectMinKey(T[] t, int startPos) throws IllegalArgumentException{
if(t==null || t.length-1-startPos<=0) throw new IllegalArgumentException("参数传递不正确!");
int pos = startPos;
T min = t[pos];
for(int i=pos; i<=t.length-1 ;i++){
if(t[i].compareTo(min) < 0){
min = t[i];
pos = i;
}
}
return pos;
}
public static void main(String[] args) {
Integer[] arr = new Integer[]{1,2,5,7,4,2,3,9,7};
SelectSort.selectSort(arr);
for(int i : arr){
System.out.println(i);
}
}
}
用Java实现简单选择排序
最新推荐文章于 2022-05-14 21:25:34 发布