JAVA算法起步之插入排序实例

时间:2021-05-30 15:52:30 

趁着过年这段时间,我将算法导论这本书看了一遍,感觉受益匪浅。着这里也根据算法导论中所涉及到的算法用java实现了一遍。
第一篇我们就从排序开始,插入排序的原理很简单,就像我们玩扑克牌时一样。如果手里拿的牌比他前一张小,就继续向前比较,知道这张牌比他前面的牌打时候就可以插在他的后面。当然在计算机中我们相应的也需要将对比过的牌向后移一位才可以。
这里直接给出算法,相信很多程序员都感觉有些程序比我们的自然语言都要好理解。


public class Sort {
 public void sort(int[] s){
  if(s.length<1){
   return ;
  }
  for (int i = 1; i < s.length; i++) {
   int key =s[i];
   int j=i-1;
   while(j>=0&&s[j]>key){
    s[j+1]=s[j];
    j--;
   }
   s[j+1]=key;
  }
 }
 public static void main(String[] args) {
  Sort s=new Sort();
  int[] st =new int[]{7,5,3,4,2,1};
  s.sort(st);
  for (int i = 0; i < st.length; i++) {
   System.out.println(st[i]);
  }
 }
}


他的时间复杂度是o(n*n),是原址的(任何时候都需要常数个二外的元素空间存储数据而归并排序就是非原址的)

标签:JAVA,插入排序
0
投稿

猜你喜欢

  • java程序员必须要学会的linux命令总结(推荐)

    2021-12-11 00:47:47
  • Java ArrayList与LinkedList及HashMap容器的用法区别

    2022-07-07 00:53:25
  • java将一个目录下的所有数据复制到另一个目录下

    2023-01-08 15:11:44
  • Android Studio配置国内镜像源(利用hosts)

    2023-05-29 18:47:54
  • java项目中的多线程实践记录

    2023-10-16 16:12:03
  • 详解java.lang.reflect.Modifier.isInterface()方法

    2023-07-27 18:25:25
  • Android服务Service教程

    2022-02-19 13:05:40
  • java中String.intern()方法功能介绍

    2023-11-25 23:49:21
  • windows下java环境变量的设置方法

    2022-12-01 03:13:14
  • Java hashCode原理以及与equals()区别联系详解

    2023-03-04 15:37:56
  • C#开发Android百度地图手机应用程序(多地图展示)

    2022-01-06 00:47:51
  • 详解SpringMVC常用注解功能及属性

    2021-12-29 02:49:23
  • 微服务间调用Retrofit在Spring Cloud Alibaba中的使用

    2022-09-29 23:13:42
  • 深入分析JAVA 建造者模式

    2023-03-14 01:32:27
  • Java中Maven项目导出jar包配置的示例代码

    2023-01-26 20:09:32
  • Springboot 整合shiro实现权限控制的方法

    2021-09-21 20:15:47
  • C#实现获取机器码的示例详解

    2021-11-13 06:57:19
  • java连接sql server 2008数据库代码

    2023-05-27 10:40:01
  • java金额数字转中文工具类详解

    2022-02-15 09:42:25
  • C#实现文件分割和合并的示例详解

    2023-05-24 21:04:03
  • asp之家 软件编程 m.aspxhome.com