美文网首页
直接插入排序(java)

直接插入排序(java)

作者: 丨ouo丨 | 来源:发表于2017-10-27 17:07 被阅读24次

扑克牌是我们几乎每个人都可能玩过的游戏。最基本的扑克玩法都是一边摸牌,一边理牌。假如我们拿到了这样一手牌,如图9-5-1所示。啊,似乎是同花顺呀,别急,我们得理一理顺序才知道是否是真的同花顺。请问,如果是你,应该如何理牌呢?

应该说,哪怕你是第一次玩扑克牌,只要认识这些数字,理牌的方法都是不用教的。将3和4移动到5的左侧,再将2移动到最左侧,顺序就算是理好了。这里,我们的理牌方法,就是直接插入排序法。

(以上内容来自: 程杰. “大话数据结构” )

假设初始序列53462。以下画了个图表示执行过程

直接插入排序
public class StraightInsertSort {
    public static int[] StraightInsertSort(int[] arr){
        int temp;
        for(int i = 1; i < arr.length; i++){ // 从第二个数开始插入,第一个默认有序
            if(arr[i] < arr[i-1]){ // 如果比第一个数大,就也有序;如果比第一个数小就要考虑插入
                temp = arr[i];//记录当前数
                int j;
                for(j = i-1; j >= 0 && arr[j] > temp; j--){//从后往前循环,比当前数大就往后挪一个位置
                    arr[j+1] = arr[j];
                }
                //循环执行完后把arr[j+1]这个位置腾出来了,这个位置就是该插入的位置
                arr[j+1] = temp;
            }
        }
        return  arr;
    }
}

相关文章

  • 直接插入排序(java)

    扑克牌是我们几乎每个人都可能玩过的游戏。最基本的扑克玩法都是一边摸牌,一边理牌。假如我们拿到了这样一手牌,如图9-...

  • 直接插入排序(JAVA)

    前言   本文集将用java语言实现包括插入排序(直接插入、折半插入、希尔排序),交换排序(快速排序和冒泡排序),...

  • 直接插入排序:(java)

    将一个记录插入到已经排序好的有序表中,从而得到一个新的有序表。可先将第一个数字作为初始的有序表,再将剩余的数次插入...

  • Java——直接插入排序

    直接插入排序是一种最简单的排序算法,在后续我会继续发布其他的简单排序;直接插入的算法基本思想是:仅有一个元素的序列...

  • Java 直接插入排序

    经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 将第一个数和第二个数排序,然后构成一个有序序列 将...

  • 直接插入排序-Java

    概念: 直接插入排序是将一条记录插入到已排好序的有序列表中,从而得到一个新的、记录数量增1的有序列表 算法步骤: ...

  • java快速学习排序---插入排序

    1.java实现插入排序 (1)、图解插入排序 (2)、插入排序的思想 (3)、插入排序的代码实现

  • 熟记代码片段

    1.转自 一遍记住Java常用的八种排序算法与代码实现 直接插入排序:

  • 插入排序

    一、直接插入排序 二、折半插入排序

  • 【数据结构】【C#】013-插入类排序:🥇直接插入排序(稳定)

    插入排序:直接插入排序(稳定) 【 算法思想 】 直接插入排序是一种最基本的插入排序方法,其基本操作是将第 i 个...

网友评论

      本文标题:直接插入排序(java)

      本文链接:https://www.haomeiwen.com/subject/xoliuxtx.html