选择排序,插入排序,谁能给我讲一下,,两种排序的基本原理,尽量用完整的java程序说明一下(带注释的)

解决方案 »

  1.   

    Java程序员必知的8大排序:
    http://developer.51cto.com/art/201206/345156.htm
    写的不错,好好看看吧~!
      

  2.   

    自己写好的插入排序算法模板,直接插入排序是在把元素a[i]插入到已经排好序的a[0]—a[i-1]中,时间复杂度最差O(N^2),最好O(N) /**
     * 直接插入排序
     * @param sortArray
     */
    public static void InsertSort(int[] sortArray){

    for(int i=1;i<sortArray.length;i++){
    int compareVale = sortArray[i];
    int j = i;
    while(j>0 && compareVale<sortArray[j-1]){
    //----->如果compareVale小于sortArray[j],则后退
    sortArray[j]=sortArray[j-1];
    j--;
    }
    sortArray[j]=compareVale;
    }  
    }
    选择排序(Selection sort)是一种简单直观的排序算法。原理:在未排序序列中找到最小元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 时间复杂度O(N^2)void select_sort( int[] a, int n)
    {
        int i, j, min, t;
        for( i = 0; i < n - 1; i ++)
        {
            min = i;
            //查找最小值
            for( j = i + 1; j < n; j ++)
                if( a[ min] > a[ j])
                    min = j;
            //交换
            if( min != i)
            {
                t = a[ min];
                a[ min] = a[ i];
                a[ i] = t;
            }
        }
    }