直接插入排序是将未排序的数据插入至已排好序序列的合适位置。

  具体流程如下:
  1、首先比较数组的前两个数据,并排序;
  2、比较第三个元素与前两个排好序的数据,并将第三个元素放入适当的位置;
  3、比较第四个元素与前三个排好序的数据,并将第四个元素放入适当的位置;
   ......
  4、直至把最后一个元素放入适当的位置。
 
空间效率:使用了常数个辅助单元,空间复杂度为O(1)
时间效率:最好情况下:表中元素已经有序,都只需比较一次而不用移动元素,时间复杂度情况是O(n)
              最坏情况下:表中元素逆序,时间复杂度为n的平方。
稳定性:直接插入排序是一个稳定的算法。
适用性:直接插入算法适合顺序存储和链式存储。
public  int[] sort(int[] A){
int tmp;
int j;
for(int i=1; i<A.length; i++){
tmp = A[i];
for(j=i-1; j>0; i--){
if(tmp >=A[j]){
break;
}
else{
A[j+1] = A[j]; //注意:容易误写成A[j+1]=A[i];
}
}
A[j+1] = tmp;
}
return A;
}

最新文章

  1. iOS 分享至友盟分享
  2. poj1655 树的重心 树形dp
  3. 微分方程&mdash;&mdash;包络和奇解
  4. python 练习 27
  5. hibernate 其中七种关联关系
  6. 2016022611 - redis订阅发布命令集合
  7. 转载:JAVA中使用JSON进行数据传递
  8. Python读写Json文件
  9. POJ 3982 序列 塔尔苏斯问题解决
  10. PHP数学函数试题
  11. jQuery_第一章_JavaScript基础
  12. 零基础学Python--------第5章 字符串及正则表达式
  13. 图融合之加载子图:Tensorflow.contrib.slim与tf.train.Saver之坑
  14. bat命令查询硬件信息
  15. .io域名在申请SSL证书时被坑
  16. Centos的yum源更换为国内的阿里云源
  17. java+selenium的helloworld
  18. 通过sftp操作Linux服务器上的文件(java)
  19. English trip -- VC(情景课)10 C I like to watch TV. 我爱看电视
  20. SharePoint 2010: Change welcome page on PowerShell

热门文章

  1. 转 How to Find Out Who Is Locking a Table in MySQL
  2. Docker容器(一)——Docker的介绍与部署
  3. python flask框架学习(三)——豆瓣微信小程序案例(二)整理封装block,模板的继承
  4. 使用idea创建简单的webservice服务
  5. 看看该死的jquery.form.js的用法,不是个东西
  6. ubuntu下安装chrome浏览器和flash插件
  7. [转帖]Linux内核系统体系概述
  8. Struts笔记3
  9. Python random模块(以后用到一个再更新一个)
  10. git出现Invalid path