直接插入排序算法(java)
2024-08-27 00:14:23
直接插入排序是将未排序的数据插入至已排好序序列的合适位置。
具体流程如下:
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;
}
最新文章
- iOS 分享至友盟分享
- poj1655 树的重心 树形dp
- 微分方程&mdash;&mdash;包络和奇解
- python 练习 27
- hibernate 其中七种关联关系
- 2016022611 - redis订阅发布命令集合
- 转载:JAVA中使用JSON进行数据传递
- Python读写Json文件
- POJ 3982 序列 塔尔苏斯问题解决
- PHP数学函数试题
- jQuery_第一章_JavaScript基础
- 零基础学Python--------第5章 字符串及正则表达式
- 图融合之加载子图:Tensorflow.contrib.slim与tf.train.Saver之坑
- bat命令查询硬件信息
- .io域名在申请SSL证书时被坑
- Centos的yum源更换为国内的阿里云源
- java+selenium的helloworld
- 通过sftp操作Linux服务器上的文件(java)
- English trip -- VC(情景课)10 C I like to watch TV. 我爱看电视
- SharePoint 2010: Change welcome page on PowerShell
热门文章
- 转 How to Find Out Who Is Locking a Table in MySQL
- Docker容器(一)——Docker的介绍与部署
- python flask框架学习(三)——豆瓣微信小程序案例(二)整理封装block,模板的继承
- 使用idea创建简单的webservice服务
- 看看该死的jquery.form.js的用法,不是个东西
- ubuntu下安装chrome浏览器和flash插件
- [转帖]Linux内核系统体系概述
- Struts笔记3
- Python random模块(以后用到一个再更新一个)
- git出现Invalid path