博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Insertion Sort
阅读量:6090 次
发布时间:2019-06-20

本文共 923 字,大约阅读时间需要 3 分钟。

https://www.youtube.com/watch?v=kU9M51eKSX8 

 

 

 

 

插入排序

插入排序(Insertion Sort)的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。

插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

算法描述

具体算法描述如下:

  1. 从第一个元素开始,该元素可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到下一位置中
  6. 重复步骤2~5

 

主意,这个和 selection sort 很像,insertion sort 是从后往前, selection sort 是从前往后。 

1 public class InsertionSort { 2     public int[] sort(int[] arr){ 3         if (arr == null) return arr ; 4         //默认第一位(5)已经SORT 好,从第二位(1)开始 倒着往回比较: 如果比 5 小 则把 5 换过来 5         // 5 1 3 6 4 6         for (int i = 1; i < arr.length; i++) { 7             //倒序  J>0 因为下面 有 arr[j-1] 千万小心 8             for (int j = i; j >0; j--) { 9                 //swap  5 1  to 1 510                 if (arr[j]
System.out.println(a));25 }26 }

 

 

转载于:https://www.cnblogs.com/davidnyc/p/8621397.html

你可能感兴趣的文章
本地同城地方门户网这样运营轻轻松松拿到5W广告费
查看>>
为了忘却的纪念—Androidstudio Terminal窗口使用学习记录
查看>>
【BottomBar】Android炫酷的底部切换效果V2 0
查看>>
干货|一文读懂 Spring Data Jpa!
查看>>
Java获取Class对象的方式和实例化对象的方式
查看>>
一个命令完成[打包+同步七牛cdn+上传服务器]
查看>>
动态加载的一些坑
查看>>
javascript之深浅拷贝
查看>>
正则表达式
查看>>
特征值分解和奇异值分解
查看>>
js设计模式--迭代器模式
查看>>
Python操作目录,如:获取当前工作目录,获取执行命令的位置,路径拼接,路径拆分,文件重命名,删除文件,复制文件...
查看>>
SQL
查看>>
我的在线编程工具
查看>>
javascript的深拷贝和浅拷贝
查看>>
请把你的小手放到你的头像上
查看>>
postCss 初识 (文章较长,需要耐心)
查看>>
微小企业如何更好的管理自己的进销?分享你一个saas平台
查看>>
如何用Redis实现分布式缓存
查看>>
git 免密码操作
查看>>