package com.rao.linkList;

import java.util.Arrays;

/**
* @author Srao
* @className InsertSort
* @date 2019/12/4 12:02
* @package com.rao.linkList
* @Description 插入排序
*/
public class InsertSort { /**
* 插入排序
* @param arr
*/
public static void insertSort(int[] arr){
for (int i = 1; i < arr.length; i++){ //先把要插入的数保存下来
int temp = arr[i]; int k = i-1; //找到第一个比它小的数的下标
while (k >=0 && arr[k] > temp){
k--;
} //把较小的元素之前的元素全部后移一位,为要插入的元素空出一个位置
for (int j = i; j > k+1; j--){
arr[j] = arr[j-1];
} //插入这个元素到第一个比它小的元素的前面
arr[k+1] = temp;
}
} public static void main(String[] args) {
int[] arr = new int[]{3,6,2,5,9,1,0,8};
System.out.println(Arrays.toString(arr));
insertSort(arr);
System.out.println(Arrays.toString(arr)); }
}

1.从数组的第二个元素开始遍历,向数组的头开始找

2.如果遇到比这个元素大的数,就继续向前找

3.如果遇到比这个元素小的数,就把之前比这个元素大的数想前移动一位,然后把这个元素插入到这个比他小的数的前面

最新文章

  1. ubuntu系统怎么分区
  2. Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]
  3. Spark-1.0.0 standalone分布式安装教程
  4. ThinkPHP整合支付宝即时到账接口调用
  5. Codeforces 711 D. Directed Roads (DFS判环)
  6. 单例模式总结(Java版)
  7. CQOI2009中位数图
  8. GCOV 使用用例
  9. enum型常量
  10. python基础整理----基本概念和知识
  11. uvalive 3635 Pie
  12. Java web 前端面试知识点总结
  13. C# winform在关闭窗体的时候及时释放内存问题
  14. 自动化测试基础篇--Selenium select下拉框
  15. Linux 操作MySQL常用命令行(转)
  16. navicat安装步骤
  17. HTML5和CSS基础
  18. Dijkstra算法求最短路径(java)(转)
  19. Android -- 自定义标题栏,背景颜色填充满
  20. python学习笔记013——推导式

热门文章

  1. centos 修改语言、时区
  2. 表单只有一项 input 时按回车键会提交表单
  3. pg_sql常用查询语句整理
  4. ROS融合IMU笔记
  5. HTTP之缓存命中
  6. python笔记 利用python 自动生成条形码 二维码
  7. Java 8创建Stream流的5种方法
  8. 【08】Kubernets:Service
  9. Python数据分析Pandas的编程经验总结
  10. css3贝塞尔曲线过渡动画速率——transition-timing-function:cubic-bezier(n,n,n,n)