插入排序的核心思想就是每次将最后一个元素作为插入元素,与有序数列比较后插入正确的位置
举个例子理解,有个数组arr={3,2,5,4,1},
第一次插入一个1
| 1 | ||||
|---|---|---|---|---|
第二次插入一个4
| 1 | 4 | |||
|---|---|---|---|---|
第三次插入一个5
| 1 | 4 | 5 | ||
|---|---|---|---|---|
第四次插入一个2
| 1 | 2 | 4 | 5 | |
|---|---|---|---|---|
第五次插入一个3
| 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|
直接上代码
public static void main(String[] args) {int data[] = {3,2,5,4,1};//每次加的数进来for(int i = 1 ; i < data.length; i++) {//这个j表示的是已经排好序的序列for(int j = i; j > 0 ; j--) {if(data[j] < data[j - 1]) {//交换 不让你引入第三个变量 交换 a b的值int temp = data[j];data[j] = data[j - 1];data[j - 1] = temp;}}}for(int i = 0 ; i < data.length; i++) {System.out.print(data[i] + " ");}System.out.println();}
