插入排序
来源:互联网 发布:蜜蜂软件怎么注册 编辑:程序博客网 时间:2024/06/17 22:03
public class Test {
public static void insertionSort(int[] source) {
for(int i=0;i<source.length;i++){
for(int j=i;j>0;j--){
if(source[j]<source[j-1]){
swap(source,j,j-1);
}
}
}
}
private static void swap(int[] source, int x, int y) {
int temp =source[x];
source[x] = source[y];
source[y] = temp;
}
public static void main(String[] args) {
int[] a={4,2,1,6,3,6,0,-5,1,1};
insertionSort(a);
for(int i=0;i<10;i++){
System.out.println(a[i]);
}
}
public static void insertionSort(int[] source) {
for(int i=0;i<source.length;i++){
for(int j=i;j>0;j--){
if(source[j]<source[j-1]){
swap(source,j,j-1);
}
}
}
}
private static void swap(int[] source, int x, int y) {
int temp =source[x];
source[x] = source[y];
source[y] = temp;
}
public static void main(String[] args) {
int[] a={4,2,1,6,3,6,0,-5,1,1};
insertionSort(a);
for(int i=0;i<10;i++){
System.out.println(a[i]);
}
}
}
一般来说,插入排序采用in-place在数组上实现。具体算法描述如下:
1.从第一个元素开始,该元素可以认为已经被排序。
2.取出下一个元素,在已经排序的元素序列中从后面向前扫描。
3.如果该元素(已排序)大于新元素,则将该元素移到下一位置
4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
5.将元素插入到该位置中。
6.重复步骤2.
插入排序 最差、平均时间复杂度都是o(n^2),稳定的排序,空间复杂度是1
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 每天读一点好玩心理学--酒吧
- arrayList hashset的比较及hashcode分析
- ext可视化工具Sencha Architect 3破解
- Linux C 字符串操作
- 莫队算法及其应用
- 插入排序
- 使用cocos2dx制作 帧同步 游戏
- Android开发——JobScheduler机制以及Android电量优化
- LintCode 135-数字组合 回溯法
- 每天读一点好玩心理学--记忆
- IOC控制反转
- java中的匿名内部类
- 牢记ConnectionFactory(数据库连接),jdbcTemplate(CRUD)模板,学习更有效率
- HDU 2035 人见人爱A^B(同余基本性质)