算法之直接插入排序降序,升序

//升序

public static void Insertion_Sort(int[] elements){


        for(int i = 1;i <elements.length; i++){
            int j = -1;
            while(j <= i && elements[i] > elements[++j]);//找到element[i]應該擺放的位置,此處可以利用查找算法進行優化
            if(j < i){
                //將j之後的數據移動一位,然後把elements[i]移動到j處
                int temp = elements[i];
                for(int k = i-1;k >= j;k--){
                    elements[k+1] = elements[k];
                }
                elements[j] = temp;
            }
        }

}

//降序

    public static void Insertion_Sort(int[] elements){
   
   
    int key,i;
   
        for(int j=1;j<elements.length;j++)
        {
        key=elements[j];
        i=j-1;
        while(i>=0 && elements[i]<key){
       
        elements[i+1]=elements[i];
        i=i-1;
        elements[i+1]=key;
       
        }
       
        }
    
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章