初等排序——插入排序(Java实现)
算法思想
- 将待排序数字串中的元素依次取出,首先取出第一个元素并默认为一个有序数字串
- 再取出第二个元素与第一个元素即有序数字串比较,若比第一个元素大则放在第一个元素后,否则放在第一个元素前,此时有序数字串中已有两个元素
- 从待排序的数字串中取出下一个元素与有序数字串比较,放在相应的位置上使之成为一个新的有序数字串
- 依次执行第三步,直至所有元素都在有序数字串中
JAVA代码如下
//插入排序
public class InsertSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] number={4,6,2,8,3,9,4,1,7,5};//待排序数字串
for(int i=1;i<number.length;i++){
int flag=number[i];//即将插入的有序数字串的元素
int j=i-1;
//循环遍历有序数字串,为待插入的元素找到合适的位置
while(j>=0&&flag<number[j]){
int change=number[j+1];
number[j+1]=number[j];
number[j]=change;
j--;
}
}
//循环输出结果,即有序数字串
System.out.print("插入排序的结果是:");
for(int i=0;i<number.length;i++){
System.out.println(number[i]+" ");
}
}
}
运行结果是: