【插入排序解析】

起始:
假设第一个元素为已经排好序

那么我们就要从数组的第二个元素开始

每一轮确定1一个元素的正确位置

所以外层循环的控制变量为 [1,arr.length)的左闭右开区间

外层循环控制比较轮次的同时,也是每轮需要比较的数组元素的下标

因为插入排序的原理为 将待排序的数组元素插入到有序的假设数组内

这个假设的有序数组是变化的,每轮比较完都会增加,

所以用内循环变量控制元素与这个动态变化的有序数组的比较次序

public class InsertSort1 {
public static void main(String[] args) {
int[] arr = new int[]{15,13,20,4,9,3};
for (int i=1;i<arr.length;i++){
for (int j=0;j<i;j++){
if (arr[i]<arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}

【java数据结构与算法】插入排序的更多相关文章

  1. java数据结构和算法------插入排序

    package iYou.neugle.sort; public class Insert_sort { public static void InsertSort(double[] array) { ...

  2. Java数据结构和算法(三)--三大排序--冒泡、选择、插入排序

    三大排序在我们刚开始学习编程的时候就接触过,也是刚开始工作笔试会遇到的,后续也会学习希尔.快速排序,这里顺便复习一下 冒泡排序: 步骤: 1.从首位开始,比较首位和右边的索引 2.如果当前位置比右边的 ...

  3. Java数据结构和算法(九)——高级排序

    春晚好看吗?不存在的!!! 在Java数据结构和算法(三)——冒泡.选择.插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(N2),如果数据量少,我们还能忍受,但是数据量大 ...

  4. Java数据结构和算法 - 高级排序

    希尔排序 Q: 什么是希尔排序? A: 希尔排序因计算机科学家Donald L.Shell而得名,他在1959年发现了希尔排序算法. A: 希尔排序基于插入排序,但是增加了一个新的特性,大大地提高了插 ...

  5. Java数据结构和算法 - 递归

    三角数字 Q: 什么是三角数字? A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,……中有一种奇特的联系.这个数列中的第N项是由第N-1项加N得到的 ...

  6. Java数据结构和算法 - 简单排序

    Q: 冒泡排序? A: 1) 比较相邻的元素.如果第一个比第二个大,就交换它们两个; 2) 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数; 3) 针 ...

  7. Java数据结构与算法 - 外部存储

    Q: 什么是外部存储? A: 外部存储特指某类磁盘系统,例如在大多数台式电脑或服务器中的硬盘. Q: 如何访问外部存储? A: 我们所学的数据结构都是假设数据存储在内存中,但是,在很多情况下要处理的数 ...

  8. Java数据结构和算法(五)——队列

    队列.queue,就是现实生活中的排队. 1.简单队列: public class Queqe { private int array[]; private int front; private in ...

  9. Java数据结构和算法(四)赫夫曼树

    Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...

  10. Java数据结构和算法(五)--希尔排序和快速排序

    在前面复习了三个简单排序Java数据结构和算法(三)--三大排序--冒泡.选择.插入排序,属于算法的基础,但是效率是偏低的,所以现在 学习高级排序 插入排序存在的问题: 插入排序在逻辑把数据分为两部分 ...

随机推荐

  1. 学习Java Day7

    今天学习了if语句和C/C++基本无差异,也再次练了一下Java的输入

  2. 三:Mybatis

    三.MyBatis 主流的ORM 支持java .NET Ruby三种语言,MyBatis是对JDBC的封装 ORM框架Hibernate 区别: 1)sql 优化方面 Hibernate 使用 HQ ...

  3. 快学会这个技能-.NET API拦截技法

    大家好,我是沙漠尽头的狼. 本文先抛出以下问题,请在文中寻找答案,可在评论区回答: 什么是API拦截? 一个方法被很多地方调用,怎么在不修改这个方法源码情况下,记录这个方法调用的前后时间? 同2,不修 ...

  4. 「CEOI2019」魔法树

    \(\text{Solution}\) 设 \(f_{x,i}\) 表示以 \(x\) 为根的子树 \(i\) 天后的最大收益 那么 \(f_{x,i} = \max(f_{x,i-1},w_x [d ...

  5. JZOJ 1090. 【SDOI2009】晨跑

    题目 略,luogu上有 解析 一眼费用流 然而怎么建图? 首先我们要挖掘题中的限制条件和性质 一个点只能经过一次 能走的天数最长 满足第二条的条件下走过的路程最短 那么显然是最小费用最大流了 对于后 ...

  6. CF1367E Necklace Assembly

    题目传送门 思路 提供一种比现有的两篇题解都简单的方法. 我们枚举答案,发现最终的答案数组一定是由多个完全相同的块组成的,并且块长必定是 \(k\) 的因数. 然后我们考虑枚举答案 \(i\),那么此 ...

  7. Hexo系列(三):Hexo主题

    作者:独笔孤行 官网:​​ ​http://anyamaze.com​​ 公众号:云实战 Hexo支持更换主题,支持多种主题模式,也支持自定义主题. Hexo主题地址1:https://hexo.io ...

  8. 28.yield return 语法

    一.yield return 该语句可以实现在 foreach 循环中,在其他方法边遍历边输出.如下: class Program { private List<int> list = n ...

  9. CF1303F 题解

    题意 传送门 有一个 \(n\times m\) 的矩阵,初始全是 \(0\).我们定义 \(a_{i,j}\) 表示矩阵中第 \(i\) 行第 \(j\) 列的元素. 如果两个格子有相邻边并且格子中 ...

  10. max virtual memory areas vm.max_map_count 65530 is too low的解决办法

    解决办法 /etc/sysctl.conf加上 vm.max_map_count = 262144 使配置永久生效 执行: sysctl -w vm.max_map_count=262144 使配置立 ...