算法学习笔记之直接插入排序算法

简介: 算法学习笔记之直接插入排序算法

算法学习笔记之直接插入排序算法

直接插入排序算法原理


  • 从第一个元素开始,该元素可以认为已经被排序
  • 取出下一个元素,在已经排序的元素序列中从后向前扫描
  • 如果该元素(已排序)大于新元素,将该元素移到下一位置
  • 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置
  • 将新元素插入到该位置后
  • 重复步骤 2~5


Java 实现

package top.simba1949;
/**
 * 插入排序算法——直接插入排序
 *
 * 直接插入排序算法原理:
 *     1. 从第一个元素开始,该元素可以认为已经被排序
 *     2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
 *     3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
 *     4. 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置
 *     5. 将新元素插入到该位置后
 *     6. 重复步骤 2~5
 *
 * @author SIMBA1949
 * @date 2019/6/29 20:52
 */
public class DirectInsertSort {
    public static void main(String[] args) {
        int[] intArr = {1, 9, 90, 20, 30, 66, 34, 55, 54, 44, 66};
        directInsertSortImpl(intArr);
        for (int i : intArr) {
            System.out.print(i + "\t");
        }
    }
    public static void directInsertSortImpl(int[] original){
        if (null == original || original.length < 2){
            return;
        }
        for (int i = 1; i < original.length; i++) {
            // original[j] < original[j - 1] 从小到大排序
            // original[j] > original[j - 1] 从大到小排序
            for (int j = i; j > 0 && original[j] < original[j - 1]; j--){
                int temp = original[j];
                original[j] = original[j - 1];
                original[j - 1] = temp;
            }
        }
    }
}


目录
相关文章
|
6月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
7月前
|
人工智能 算法 C++
c++算法学习笔记 (17) 质数
c++算法学习笔记 (17) 质数
|
7月前
|
算法 C++
c++算法学习笔记 (15) 单调栈与单调队列
c++算法学习笔记 (15) 单调栈与单调队列
|
7月前
|
算法 C++
c++算法学习笔记 (13) 链表
c++算法学习笔记 (13) 链表
|
7月前
|
算法 C++
c++算法学习笔记 (12) 区间合并
c++算法学习笔记 (12) 区间合并
|
7月前
|
人工智能 算法 C++
c++算法学习笔记 (18) 约数
c++算法学习笔记 (18) 约数
|
7月前
|
算法 C++
c++算法学习笔记 (16) 并查集
c++算法学习笔记 (16) 并查集
|
7月前
|
存储 人工智能 算法
c++算法学习笔记 (9) 双指针
c++算法学习笔记 (9) 双指针
|
7月前
|
存储 算法 C++
c++算法学习笔记 (8) 树与图部分
c++算法学习笔记 (8) 树与图部分
|
7月前
|
算法 C++
c++算法学习笔记 (5)前缀和+差分
c++算法学习笔记 (5)前缀和+差分
下一篇
DataWorks