排序算法

来源:互联网 发布:节奏大师网络拦截 编辑:程序博客网 时间:2024/06/16 05:01

直接插入排序

1.整体代码截图


2.核心部分代码

private static void InsertSort(int[] a, int n)
{
    //直接插入排序
    //理论:默认第一个元素时哨兵元素,是有序列表。
    // 从第一个元素开始与第0个元素比较
    //如果哨兵元素值小于上一个元素,移动有序列表后替换元素
    //如果哨兵元素值大于等于上一个元素,则不处理现有顺序,继续处理下一个元素。
    for(int index= 1index<nindex++){
        if(a[index] < a[index-1]){   //哨兵元素值小于上一个元素,移动有序表后替换
            int pre= index-1;
            int curNum = a[index];       //复制为哨兵,即存储待排序元素
            while(pre>=&& curNum < a[pre]){  //查找在有序表的插入位置
                a[pre+1] = a[pre];//哨兵位置=上一个元素的值
                pre--;         //哨兵前移
            }
            a[pre+1] = curNum;     //插入到正确位置
        }
        print(a,n,index);
    }

}

0 0
原创粉丝点击