public class Selection_sort { PRivate static Integer[] data; public static void main(String[] args) { Random ra =new Random(); data=new Integer[30]; for(int i=0;i<30;i++) data[i]=ra.nextInt(100)+1; display(data); selectionSort(data); display(data); } public static void display(Integer[] data2) { for(int i=0;i<data2.length;i++) System.out.print(data2[i]+" "); System.out.println(); } /** * 将数组前n个对象升序排序 * @param a * @param n */ public static<T extends Comparable<? super T>> void selectionSort(T[] a){ for(int index=0;index<a.length-1;index++){ int indexOfNextSmallest=getIndexOfSmallest(a, index, a.length-1); swap(a, index, indexOfNextSmallest); } } /** * 在数组一部分找出最小值索引 * @param a * @param first * @param last * @return */ private static<T extends Comparable<? super T>> int getIndexOfSmallest(T[] a,int first,int last){ T min=a[first]; int indexOfMin=first; for(int index=first+1;index<=last;index++){ if(a[index].compareTo(min)<0){ min=a[index]; indexOfMin=index; } } return indexOfMin; } private static<T extends Comparable<? super T>> void swap(T[] a,int i,int j){ T temp=a[i]; a[i]=a[j]; a[j]=temp; }}测试结果12 31 32 20 11 31 21 68 80 93 32 31 61 60 65 70 96 19 86 84 6 71 92 29 92 27 96 14 85 15 6 11 12 14 15 19 20 21 27 29 31 31 31 32 32 60 61 65 68 70 71 80 84 85 86 92 92 93 96 96 选择排序算法性能
新闻热点
疑难解答