插入排序

參考別人的文章記錄下來,方便自己查看

插入排序是一種最簡單直觀的排序算法,它的工作原理是通過構建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應位置并插入。

算法步驟:

將待排序序列的<code>第一個元素</code>看做一個<code>有序序列</code>,把第二個元素到最后一個元素當成是<code>未排序序列</code>。

從頭到尾依次掃描<code>未排序序列</code>,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的后面。)

    /**
     * 插入排序
     * @param a
     */
    public static void insertSort(int[] a) {
        //第一個元素作為有序序列;剩下的第二個元素到末尾元素為無序序列
        //從第二個元素掃描序列
        for(int i=1; i<a.length; i++) {
            int target = a[i]; //此次需移動的目標
            int j = i; //j是最終target移動到的位置
            //target與有序序列比較,找到適合的位置j;同時將比target大的
            while(j>0 && target < a[j-1]) {
                a[j] = a[j-1]; //比target大的有序序列數(shù)據(jù)右移
                j--; //target小于有序序列的數(shù)據(jù)時,j左移
            }
            //插入 
            a[j] = target; //在位置j上賦值target
        }
    }   
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容