插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。
package com.ycu.paixu;
public class Insert {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arrays={2,3,1,5};
int temp;
//外层循环控制需要排序的趟数(从1开始因为将第0位看成了有序数据)
for(int i=1;i<arrays.length;i++){
temp = arrays[i];
//如果前一位(已排序的数据)比当前数据要大,那么就进入循环比较[参考第二趟排序]
while((i>=1)&&arrays[i-1]>temp){
//往后退一个位置,让当前数据与之前前位进行比较
arrays[i] = arrays[i-1];
//不断往前,直到退出循环
i--;
}
//退出了循环说明找到了合适的位置了,将当前数据插入合适的位置中
arrays[i] = temp;
}
for(int j=0;j<arrays.length;j++){
System.out.print(" " + arrays[j]);
}
}
}