直接插入排序(java)

撲克牌是我們幾乎每個人都可能玩過的游戲。最基本的撲克玩法都是一邊摸牌,一邊理牌。假如我們拿到了這樣一手牌,如圖9-5-1所示。啊,似乎是同花順呀,別急,我們得理一理順序才知道是否是真的同花順。請問,如果是你,應該如何理牌呢?

應該說,哪怕你是第一次玩撲克牌,只要認識這些數(shù)字,理牌的方法都是不用教的。將3和4移動到5的左側(cè),再將2移動到最左側(cè),順序就算是理好了。這里,我們的理牌方法,就是直接插入排序法。

(以上內(nèi)容來自: 程杰. “大話數(shù)據(jù)結(jié)構(gòu)” )

假設初始序列53462。以下畫了個圖表示執(zhí)行過程

直接插入排序
public class StraightInsertSort {
    public static int[] StraightInsertSort(int[] arr){
        int temp;
        for(int i = 1; i < arr.length; i++){ // 從第二個數(shù)開始插入,第一個默認有序
            if(arr[i] < arr[i-1]){ // 如果比第一個數(shù)大,就也有序;如果比第一個數(shù)小就要考慮插入
                temp = arr[i];//記錄當前數(shù)
                int j;
                for(j = i-1; j >= 0 && arr[j] > temp; j--){//從后往前循環(huán),比當前數(shù)大就往后挪一個位置
                    arr[j+1] = arr[j];
                }
                //循環(huán)執(zhí)行完后把arr[j+1]這個位置騰出來了,這個位置就是該插入的位置
                arr[j+1] = temp;
            }
        }
        return  arr;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 前言 ??本文集將用java語言實現(xiàn)包括插入排序(直接插入、折半插入、希爾排序),交換排序(快速排序和冒泡排序),...
    林天涯閱讀 879評論 0 0
  • 最喜歡周四了,一天都沒課~睡到自然醒~起來化個妝然后出去找樂子!先去食堂吃個早飯吧!和室友嘻嘻哈哈走到食堂,迎面撞...
    柳柳兒呀閱讀 338評論 0 0
  • 刷完《東京女子圖鑒》,再刷完《Billions》。 談劇評皆是感性認知。留下囫圇吞棗后,最深的味覺體驗。只吃蛋,不...
    斐狐閱讀 11,854評論 1 1
  • 元寧十九年冬,洛陽大雪紛紛揚揚數(shù)月不絕。萬里雪飄,將河山渲染得纖塵不染。 她在洛陽過了半生,第一次在這里見到漫天大...
  • 雪被踩臟啦
    Suzy_bd59閱讀 135評論 0 0

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