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

来源:互联网 发布:dnf淘宝辅助怎么样 编辑:程序博客网 时间:2024/04/29 22:41

//升序

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;
       
        }
       
        }
    
        }