java数据结构之插入排序

 更新时间:2017年11月09日 16:40:09   作者:阿木侠  
这篇文章主要为大家详细介绍了java数据结构之插入排序的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好序的扑克里面。

         插入排序的最坏运行时间是O(n2), 所以并不是最优的排序算法。

         如果输入数组已经是排好序的话,插入排序出现最佳情况,其运行时间是输入规模的一个线性函数。

         如果输入数组是逆序排列的,将出现最坏情况。平均情况与最坏情况一样,其时间代价是Θ(n2)。

简单例子:

public class Demo6 { 
   
  public static void main(String[] args) {  
    //定义一个整型数组  
    int[] nums = new int[]{4,3,-1,9,2,1,8,0,6};  
    //打印没有进行排序的数组  
    System.out.println("没有排序之前的结果:" + Arrays.toString(nums));  
    for(int index=0; index<nums.length; index++) {  
     //获得需要插入的数值  
     int key = nums[index];  
     //取得下标值  
     int position = index;  
      /循环比较之前排序好的数据,找到合适的地方插入  
     while(position >0 && nums[position-1] > key) {  
      nums[position] = nums[position-1];  
      position--;  
     }  
     nums[position] = key;  
    }  
    //打印排序后的结果  
    System.out.println("排序后的结果:" + Arrays.toString(nums));  
   }  
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java自定义注解的详解

    Java自定义注解的详解

    这篇文章主要介绍了Java自定义注解的详解的相关资料,Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容,需要的朋友可以参考下
    2017-08-08
  • IDEA最新激活码2021(IDEA2020.3.2最新永久激活方法)

    IDEA最新激活码2021(IDEA2020.3.2最新永久激活方法)

    这篇文章主要介绍了IDEA最新激活码2021(IDEA2020.3.2最新永久激活方法),本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java多线程之Semaphore实现信号灯

    Java多线程之Semaphore实现信号灯

    这篇文章主要给大家分享的是Java多线程之Semaphore实现信号灯的练习,emaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;下面一起进入文章学习Semaphore的具体内容
    2021-10-10
  • 深入理解Java设计模式之装饰模式

    深入理解Java设计模式之装饰模式

    这篇文章主要介绍了JAVA设计模式之装饰模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2021-11-11
  • springBoot 打war包 程序包com.sun.istack.internal不存在的问题及解决方案

    springBoot 打war包 程序包com.sun.istack.internal不存在的问题及解决方案

    这篇文章主要介绍了springBoot 打war包 程序包com.sun.istack.internal不存在的问题及解决方案,亲测试过可以,需要的朋友可以参考下
    2018-07-07
  • SpringBoot或SpringAI对接DeepSeek大模型的详细步骤

    SpringBoot或SpringAI对接DeepSeek大模型的详细步骤

    这篇文章主要介绍了DeepSeek智能助手的使用方法和步骤,包括引入库、配置环境变量和配置,文章详细描述了流式请求和非流式请求的实现方式,需要的朋友可以参考下
    2025-02-02
  • Java调用浏览器打开网页完整实例

    Java调用浏览器打开网页完整实例

    这篇文章主要介绍了Java调用浏览器打开网页的方法,以完整实例形式分析了java打开网页的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 使用Java实现获取文件MD5值工具类

    使用Java实现获取文件MD5值工具类

    我们在工作中通常使用MD5对文件进行校验完整性,比较,提高安全性等,这篇文章主要为大家详细介绍了Java如何编写一个实现获取文件MD5值的工具,需要的可以参考下
    2023-12-12
  • SpringBoot启动后的初始化数据加载原理解析与实战

    SpringBoot启动后的初始化数据加载原理解析与实战

    本文主要围绕 Spring Boot 启动后的初始化数据加载展开,介绍了初始化任务的基本需求,包括全局配置加载、数据库表初始化等,阐述了多种初始化加载方式,分析了它们的优缺点,需要的朋友可以参考下
    2024-11-11
  • 如何解决Spring的UnsatisfiedDependencyException异常问题

    如何解决Spring的UnsatisfiedDependencyException异常问题

    这篇文章主要介绍了如何解决Spring的UnsatisfiedDependencyException异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论