插入排序

2021-05-29 01:04

阅读:578

标签:ati   build   app   接收   ring   end   就是   一个   void   

现实中打牌

技术图片

接收到新牌后在已有的牌里面进行排序,然后找到属于自己的位置进行插入:

  1. 手中的牌永远是有序的

Code

package kb.algorithm;

public class InsertionSort {
    public static void main(String[] args) {
        int[] a = new int[]{3, 6, 4, 7, 2};
        sort(a);
        StringBuilder sb = new StringBuilder(20);
        for (int i = 0; i = 0; j--) {
                if (a[j] > currentValue) {
                    a[j + 1] = a[j];
                } else {
                    break;
                }
            }
            a[j + 1] = currentValue;//执行插入。j已经是下一个位置了,j+1就是满足条件的槽位。
        }
    }
}

执行结果

2,3,4,6,7,

分析演示

技术图片

i循环控制接收新牌,j循环控制给新收到的牌找到一个合适的位置并进行查询。

  1. 属于稳定排序,大小相同的数据原有的顺序不会变
  2. 最好O(n)。
  3. 最坏O(n^2)。
  4. 平均O(n^2)。

插入排序

标签:ati   build   app   接收   ring   end   就是   一个   void   

原文地址:https://www.cnblogs.com/Brake/p/14773814.html


评论


亲,登录后才可以留言!