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));  
   }  
}

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

相关文章

  • Spring Boot 如何使用Liquibase 进行数据库迁移(操作方法)

    Spring Boot 如何使用Liquibase 进行数据库迁移(操作方法)

    在Spring Boot应用程序中使用Liquibase进行数据库迁移是一种强大的方式来管理数据库模式的变化,本文重点讲解如何在Spring Boot应用程序中使用Liquibase进行数据库迁移,从而更好地管理数据库模式的变化,感兴趣的朋友跟随小编一起看看吧
    2023-09-09
  • 如何解决java.net.BindException:地址已在使用问题

    如何解决java.net.BindException:地址已在使用问题

    当Zookeeper启动报错“java.net.BindException:地址已在使用”时,通常是因为指定的端口已被其他进程占用,解决这个问题需要按照以下步骤操作:首先,使用命令如lsof -i:2181找到占用该端口的进程号;其次,使用kill命令终止该进程
    2024-09-09
  • Java的AQS基本原理详细分析

    Java的AQS基本原理详细分析

    这篇文章主要介绍了Java的AQS基本原理详细分析,AQS是Abstract Queued Synchronizer的简称,AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,本文主要讲解分析其基本原理,需要的朋友可以参考下
    2024-01-01
  • MyBatis Mapper代理使用方法详解

    MyBatis Mapper代理使用方法详解

    本文是小编日常收集整理的关于mybatis mapper代理使用方法知识,通过本文还给大家提供有关开发规范方面的知识点,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • springboot如何读取配置文件到静态工具类

    springboot如何读取配置文件到静态工具类

    这篇文章主要介绍了springboot实现读取配置文件到静态工具类方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Eclipse常用快捷键大全

    Eclipse常用快捷键大全

    这篇文章主要介绍了Eclipse常用快捷键大全,较为详细的针对eclipse中各种应用中使用快捷键进行了分类总结,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 基于@RequestBody和@ResponseBody及Stringify()的作用说明

    基于@RequestBody和@ResponseBody及Stringify()的作用说明

    这篇文章主要介绍了基于@RequestBody和@ResponseBody及Stringify()的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 如何用Java实现排列组合算法

    如何用Java实现排列组合算法

    本文主要介绍了如何用Java实现排列组合算法,对算法感兴趣的同学,可以参考一下,理解其原理,并且试验一下。
    2021-05-05
  • SpringBoot自定义bean绑定实现

    SpringBoot自定义bean绑定实现

    这篇文章主要介绍了SpringBoot自定义bean绑定,最常见的配置绑定的场景,是在自定义的bean中通过@Value注解将某个属性和对应的配置绑定
    2022-10-10
  • SpringMVC通过Ajax处理Json数据的步骤详解

    SpringMVC通过Ajax处理Json数据的步骤详解

    这篇文章主要介绍了SpringMVC通过Ajax处理Json数据的步骤详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论