直接插入法

时间复杂度 : o(n2)
空间复杂度:o(1)
稳定

package test;import java.util.*;/** 思路:  概括的说:数组从左到右  一个一个的比较  后一个值 以此与前一个  前两个  前三个比较* * 零个 或者一个不需要比较* >=2 的 第一次 先是第一个数不变  前面没数 所有不用比较  , 从第二个开始  每次都要和前面的所有数比较 直到找到比他小的 或者到头* * * 具体看代码注释* */class Main {public static void main(String[] args) {int a[] = { 12, 3, 4, 64, 5, 55, 6 };System.out.print("原数组:");show(a);// 展示原数组InsertSort(a);}public static void InsertSort(int[] a) {if (a.length < 2) {return;// 不需要比较}for (int i = 1; i < a.length; i++) {// i = 1 表示第一个数不需要比较int temp = a[i];// 将该数存储 后续用于比较 换位int j = i - 1;// 比较从小于i的下标起 从右往左while (j >= 0 && a[j] > temp) {// 直到j到达第一个数 或者 小于temp 停止比较a[j + 1] = a[j];// 数一直比temp大 就一直移动 该值赋值给上一个值j--;}a[j + 1] = temp;// 最终找到比它小的 放在其后System.out.print("第" + i + "次变化:");show(a);// 展示每一次变化的结果}}public static void show(int[] a) {for (int i = 0; i < a.length; i++)System.out.print(a[i] + "  ");System.out.println();}}

直接插入法(java实现)相关推荐

  1. java插入法排序_java算法之插入排序法

    思想:插入排序法的思想就是从数组的第二个元素开始,将数组中的每一个元素按照规则插入到已排好序的数组中以达到排序的目的.一般情况下将数组的第一个元素作为启始元素,从第二个元素开始依次插入.由于要插入到的 ...

  2. Java单链表插入基本操作(头插法、尾插法、任意位置插入法)

    一.单链表的头插法  1.创建一个NODE节点的类,写一个public void addFirst()的函数来实现链表的头部插入,最后写一个public void display()的函数实现链表的打 ...

  3. 排序算法之简单插入法排序(Java)

    简单插入排序    时间复杂度  O(n*n)  稳定的排序算法 逐一取出元素,在已排好的元素序列中从后向前扫描,插入到适当的位置 部分代码如下: public static void insert_ ...

  4. java插入法排序_java如何用插入法对数组排序(GUI窗口实现)

    3.数据获取: 该部分的代码用来获取窗口输入的数据,将窗口文本框中的字符串编程数组,具体代码如下: public void getArray() { String arrayStr = jta_in. ...

  5. Java学习--排序算法之插入法排序

    算法策略:按顺序读入数组内的元素,从后往前的与已有元素比较大小,插入到前一位比自己小并且后一位比自己小的位置. 数据结构:常量.变量和数组: 控制结构:顺序结构.有界循环结构和条件循环结构. 算法流程 ...

  6. 【Java自顶向下】面试官:HashMap源码看过吗?我:看过!面试官:好极了,那么来扒一扒吧!

    HashMap 关于hash表的基础内容,请看文章 [数据结构-查找]3.散列表详解 [Java自顶向下]HashMap面试题(2021最新版) 顶层应用 public class HashMapTe ...

  7. 【Java自顶向下】HashMap面试题(2021最新版)

    文章目录 1.HashMap的底层数据结构? 2.为啥需要链表,链表又是怎么样子的呢? 3.新的Entry节点在插入链表的时候,是怎么插入的么? 4.Java7中的HashMap和Java8中的Has ...

  8. java 链表反转_LeetCode206 实现单链表的反转

    LeetCode206 实现单链表的反转 LeetCode 码,码不停题 1.题目介绍 Reverse a singly linked list. Example: Input:1->2-> ...

  9. java 2d svg_SVG 2D入门1 - SVG综述

    位图与矢量图 以前,浏览器中显示的图形,例如jpeg.gif等,都是位图,这些图像格式是基于光栅的.在光栅图像中,图像文件定义了图像中每个像素的颜色值.浏览器需要读取这些值并做出相应行动.这种图像的再 ...

最新文章

  1. php sql server配置文件路径,云服务器初始化 第六章:更改MySQL数据文件存放路径...
  2. 《基于张量网络的机器学习入门》学习笔记4
  3. 乐峰VS聚美,明星也要吃咸盐
  4. linux nodejs环境部署,Linux 部署Nodejs 环境 (自学记录篇)
  5. ext 浅谈类的实例
  6. position定位——让人又爱又恨的属性
  7. php引用计数器,PHP 引用计数器 通俗版解释_PHP教程
  8. vue.js点击按钮导出_怎样安装vuejs devtools助力vuejs高效开发
  9. 文件共享锁溢出 请增加MaxLocksperFile注册表项值
  10. kylin在hadoop 中的架构图_Kylin |1.麒麟架构及原理
  11. 不用找,你想要的卡车 SolidWorks模型素材都在这里
  12. 滤波算法一(C程序)
  13. jave-1.0.2免费领取
  14. clinvar数据库
  15. Ceph 认证授权和RBD块存储、对象存储使用(三)
  16. 面试陈述切忌千篇一律
  17. 2.写一个WebDriver脚本
  18. 写给初学JAVA的人
  19. 数学物理方法 04 解析延拓
  20. 神经网络模型通用性分析,神经网络模型可解释性

热门文章

  1. Truffle - 2 利用Truffle编写、测试智能合约并将其部署到不同的测试网络
  2. 二维码的生成与解析示例 生成二维码
  3. 华为 FTTB(大ONU)修改同时节目观看数
  4. 平安科技寿险金服面试
  5. IO、BIO、NIO、AIO
  6. Qt QVector 详解:从底层原理到高级用法
  7. python 字典的学习
  8. 【OpenCV】边缘检测:Sobel、拉普拉斯算子
  9. 苹果app文件连接服务器有什么用,苹果曾经最鸡肋的功能,终于更新了!
  10. C# 电脑麦克风录音