插入排序
import java.util.concurrent.TransferQueue;
public class InsertSort {
public static void main(String[] args) {
int a[] = {3,1,5,7,2,4,9,6,7};
insertSort(a);
for(int b : a){
System.out.println(b);
}
}
public static void insertSort(int a[]){
int i,j;
/**
* 先将数组分开两个集合
* {3} {1,5,7,2,4,9,6}
* 然后取第二个集合中的第一个元素和第一个集合中的最后一个元素,倒数第二个元素 以此类推
* 进行比较 插入到合适的位置
*/
//这里遍历的是第二个集合 所以i=1 意思是从a[1]开始作为target进行与第一个集合中的元素以逆序的形式依次对比
for(i=1;i<a.length;i++){
int temp = a[i];
//对第一个集合中的元素 进行逆序遍历
for(j=i;j>0 && temp < a[j-1];j--){
//如果第二个集合中的第一个元素 < 第一个集合中的某个位置的元素 元素后移,为插入target做准备
a[j] = a[j-1];
}
//将第二个集合中的第一个元素 插入到第一个集合中合适的位置
a[j] = temp;
}
}
}
打印结果: