用Java實現簡單選擇排序
阿新 • • 發佈:2019-01-23
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); } } }