插入排序和前面兩種有點不一樣啦。插入排序有比較,移動的動做,插入排序分爲已排序部分和待插入部分,將待插入數據與有序部分比較,遍歷有序部分,找到第一個比插入數據的位置,插入數據,再移動插入位置以後的數據。數組
比較、插入、移動數據,移動仍是有點麻煩的this
public class InsertOne { /** * @author chengdu * @param args */ private int[] array; public void setArray(int[] array){ this.array = array; } public int[] getArray(){ return array; } public void insertOneMove(int x, int y){ // y > x if(x > array.length || y > array.length){ System.out.println("數組越界"); }else{ if(array[x] > array[y]){ int temp = array[x]; array[x] = array[y]; for(; y > x + 1 ; y--){ array[y] = array[y-1]; } array[x+1] = temp; } } } public static void main(String[] args) { // TODO Auto-generated method stub InsertOne insertone = new InsertOne(); int[] testarray = {1,2,7,4,5,6,3,8}; insertone.setArray(testarray); insertone.insertOneMove(2, 6); System.out.println(Arrays.toString(testarray)); } }
插入排序spa
public class InsertSort { /** * @author chengdu * @param args */ private InsertOne insertone; public void setInsertone(InsertOne insertone){ this.insertone = insertone; } public InsertOne getInsertone(){ return insertone; } public void insertSortMethod(int[] array){ int pos; int lenarray = array.length; insertone.setArray(array); for(pos=1; pos < lenarray; pos++){ System.out.println("次數---------:"+pos); for(int i=0; i < pos; i++){ insertone.insertOneMove(i, pos); } //輸出已經排好順序的部分 for(int i=0; i < pos+1; i++){ System.out.println(array[i]); } } } public static void main(String[] args) { // TODO Auto-generated method stub InsertOne insertone = new InsertOne(); InsertSort insertsort = new InsertSort(); insertsort.setInsertone(insertone); int[] array = {9, 1, 6, 3, 4, 2, 5, 13, 15, 10}; insertsort.insertSortMethod(array); System.out.println("---------順序-----------------"); for(Integer i : array){ System.out.println(i); } } }
運行code
次數---------:1
1
9
次數---------:2
1
6
9
次數---------:3
1
3
6
9
次數---------:4
1
3
4
6
9
次數---------:5
1
2
3
4
6
9
次數---------:6
1
2
3
4
5
6
9
次數---------:7
1
2
3
4
5
6
9
13
次數---------:8
1
2
3
4
5
6
9
13
15
次數---------:9
1
2
3
4
5
6
9
10
13
15
---------順序-----------------
1
2
3
4
5
6
9
10
13
15blog