您的位置 首页 java

选择排序(java)

 public class Selection {
    /**     
    *首先找到数组中最小的那个元素,其次将它和数组中的第一个元素交换位置     
    * 再次,在剩下的元素中找到最小的元素,将它和数组中的第二个元素交换位置  
    * 。如此往复。直到整个数组有序     
    */   
  public static void sort(Comparable[] a) {
        int N = a.length;        for (int i = 0; i < N; i++) {
            int min = i;            for (int j = i + 1; j < a.length; j++) {
                if (less(a[j], a[min])) {
                    min = j;                }
            }
            exch(a, i, min);        }
    }

    private static void exch(Comparable[] a, int i, int min) {
        Comparable t = a[i];        a[i] = a[min];        a[min] = t;    }

    private static boolean less(Comparable v, Comparable w) {
        return v.compareTo(w) < 0;    }

    private static void show(Comparable[] a) {
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");        }
    }

    public static void main(String[] args) {
        String[] a=new String []{"t","g","c","p","f","w","v"};     
      sort(a);      
      show(a);  
    }  

输出结果”c f g p t v w”

对于长度为N的数组,选择排序大约1/2 N^2次比较和N次交换

文章来源:智云一二三科技

文章标题:选择排序(java)

文章地址:https://www.zhihuclub.com/198005.shtml

关于作者: 智云科技

热门文章

网站地图