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

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

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

直接插入排序算法原理


  • 从第一个元素开始,该元素可以认为已经被排序
  • 取出下一个元素,在已经排序的元素序列中从后向前扫描
  • 如果该元素(已排序)大于新元素,将该元素移到下一位置
  • 重复步骤 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;
            }
        }
    }
}


目录
相关文章
|
1月前
|
算法 搜索推荐 测试技术
python排序算法及优化学习笔记1
python实现的简单的排序算法,以及算法优化,学习笔记1
33 1
|
2月前
|
搜索推荐
直接插入排序算法
直接插入排序算法
9 0
|
5月前
|
机器学习/深度学习 自然语言处理 算法
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)2
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
110 0
|
5月前
|
机器学习/深度学习 算法 数据可视化
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)1
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
71 0
|
7月前
|
搜索推荐
直接插入排序算法
直接插入排序算法
31 0
|
7月前
|
存储 算法 关系型数据库
|
7月前
|
机器学习/深度学习 存储 算法