java简单插入排序实例

 更新时间:2017年08月11日 08:57:35   作者:五岁i  
这篇文章主要为大家详细介绍了java简单插入排序实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、基本概念

      插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

二、java代码实现

public class InsertSort {
  public static void inserSort(int[] array){
    if (array==null||array.length<2){
      return;
    }

    for (int i=1;i<array.length;i++){ //默认第一个元素为有序队列,从第二个元素开始循环插入
      int position=array[i];     //设置第二个元素为要插入的数据
      int j=i-1;
      while (j>=0&&position<array[j]){
        array[j+1]=array[j];   //如果插入发数小于第j个元素,将第j个数向后移
        j--;
      }
      array[j+1]=position;     //插入
    }
  }

  public static void main(String ags[]){
    int[] array={2,6,4,7,3,-1};
    inserSort(array);
    for (int i=0;i<array.length;i++){
      System.out.print(array[i]+" ");
    }
  }
}
 

三、性能分析

稳定
空间复杂度O(1)
时间复杂度O(n2)
最差情况:反序,需要移动n*(n-1)/2个元素
最好情况:正序,不需要移动元素

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

相关文章

  • 详解Mybatis-plus中更新date类型数据遇到的坑

    详解Mybatis-plus中更新date类型数据遇到的坑

    这篇文章主要介绍了详解Mybatis-plus中更新date类型数据遇到的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • java学习之利用TCP实现的简单聊天示例代码

    java学习之利用TCP实现的简单聊天示例代码

    这篇文章主要给大家介绍了关于java学习笔记之利用TCP实现的简单聊天的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • java idea如何根据请求路径url自动找到对应controller方法插件

    java idea如何根据请求路径url自动找到对应controller方法插件

    这篇文章主要介绍了java idea如何根据请求路径url自动找到对应controller方法插件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Spring Boot maven框架搭建教程图解

    Spring Boot maven框架搭建教程图解

    这篇文章主要介绍了Spring Boot maven框架搭建教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • springboot中使用redis由浅入深解析

    springboot中使用redis由浅入深解析

    这篇文章主要由浅入深为大家介绍了springboot中使用redis的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Spring中的依赖注入DI源码详细解析

    Spring中的依赖注入DI源码详细解析

    这篇文章主要介绍了Spring中的依赖注入DI源码详细解析,Spring的依赖注入(Dependency Injection,DI)是Spring框架核心的一部分,它是实现控制反转(Inversion of Control,IoC)的一种方式,需要的朋友可以参考下
    2023-11-11
  • Spring Cloud动态配置刷新@RefreshScope与@Component的深度解析

    Spring Cloud动态配置刷新@RefreshScope与@Component的深度解析

    在现代微服务架构中,动态配置管理是一个关键需求,Spring Cloud 提供了 @RefreshScope 注解,允许应用在运行时动态更新配置,而无需重启服务,本文深入探析Spring Cloud动态配置刷新@RefreshScope与@Component,感兴趣的朋友一起看看吧
    2025-04-04
  • AJAX SpringBoot 前后端数据交互的项目实现

    AJAX SpringBoot 前后端数据交互的项目实现

    本文主要介绍了AJAX SpringBoot 前后端数据交互的项目实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Java中字符串的一些常见方法分享

    Java中字符串的一些常见方法分享

    这篇文章主要介绍了Java中字符串的一些常见方法,需要的朋友可以参考下
    2014-02-02
  • idea导入若依项目教程

    idea导入若依项目教程

    文章介绍了如何在IntelliJ IDEA中导入若依管理系统项目,并详细步骤包括克隆项目、修改配置文件、创建数据库、运行项目和前端展示
    2025-03-03

最新评论