直接插入排序——java
来源:互联网 发布:volatile c语言 编辑:程序博客网 时间:2024/06/04 23:54
直接插入排序:
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定
核心代码:
/** 1. 插入排序 2. @author jin */public class InsertSort { public void sort() { int[] a = {4,3,6,3,2,8,9,0,1}; int tmp = 0; for (int i = 1; i < a.length; i++) { int j=i-1; tmp=a[i]; for(;j>=0&&tmp<a[j];j--){ a[j+1]=a[j]; } a[j+1]=tmp; } for(int i=0;i<a.length;i++){ System.out.println(a[i]); } }}
假设有3,4,2,6,1这5个元素,用插入排序进行排序
(1)i=1;j=0;tmp=a[i]=a[1]=4;
j=0&&a[0]=3<tmp=4; 所以排序仍为3,4,2,6,1;
(2)i=2;j=1;tmp=a[i]=a[2]=2;
j=1&&a[1]=4>tmp=2; 进行排序3,(),4,6,1; j=0&&a[0]=3>tmp=2; 进行排序(),3,4,6,1; j=-1<0;for循环停止; a[j+1]=a[0]=tmp=2; 进行排序2,3,4,6,1;
(3)i=3;j=2;tmp=a[i]=a[3]=6;
j=2&&a[2]=4<tmp=6;for循环停止; 排序为2,3,4,6,1;
(4)i=4;j=3;tmp=a[4]=a[4]=1;
j=3&&a[3]=6>tmp=1; 进行排序2,3,4,(),6; j=2&&a[2]=4>tmp=1; 进行排序2,3,(),4,6; j=1&&a[1]=3>tmp=1; 进行排序2,(),3,4,6; j=0&&a[0]=2>tmp=1; 进行排序(),2,3,4,6; j=-1<0;for循环停止; a[j+1]=a[0]=tmp=1; 排序为1,2,3,4,6
完成。
0 0
- 插入排序—直接插入
- 直接插入排序——java
- 插入排序——直接插入排序
- 插入排序——直接插入排序
- 插入排序——直接插入排序
- 插入排序——直接插入排序
- 插入排序——直接插入排序
- 插入排序—直接插入排序
- Java 八大排序之——直接插入排序
- Java排序算法——直接插入排序
- java直接插入排序
- java 直接插入排序
- java直接插入排序
- Java直接插入排序
- 直接插入排序 java
- 直接插入排序 - Java
- 直接插入排序 Java
- 直接插入排序-java
- 通过指针如何操作字符串——储存和运算
- 【BZOJ 2763 JLOI 2011】飞行路线 (SPFA+分层图)
- SrollView用法
- 分析Linux内核创建一个新进程的过程
- libva中的H.264编码内存泄露问题
- 直接插入排序——java
- android开发笔记之ListView的优化+分类显示
- Android API学习之XmlPullParser
- UVA 531 Compromise
- ESP8266-SDK的3路PWM输出
- 使用socket套接字创建服务器
- 学会自己测天气------06
- VB.NET机房重构篇之数据库小问题
- iOS学习之UIView