/** |
插入排序是这样实现的: |
首先新建一个空列表,用于保存已排序的有序数列(我们称之为"有序列表")。 |
从原数列中取出一个数,将其插入"有序列表"中,使其仍旧保持有序状态。 |
重复2号步骤,直至原数列为空。 |
*/ |
public class TestInsertionSort { |
public static void main(String[] args) { |
int [] arr = { 3 , 4 , 9 , 7 , 1 , 2 }; |
System.out.println( "The unsorted order arrays is : " +Arrays.toString(arr)); |
System.out.println( "The sorted order arrays is : " +Arrays.toString(InsertionSortImpl.insertionSort(arr))); |
} |
} |
public class InsertionSortImpl { |
public static int [] insertionSort( int [] intArray) { |
int len = intArray.length; |
int [] newArray = new int [len]; |
int positon = - 1 ; |
for ( int i = 0 ; i < len; i++) { |
for ( int j = 0 ; j < i; j++) { |
if (intArray[i] < newArray[j]) { |
for ( int k = i; k > j; k--) { |
newArray[k] = newArray[k - 1 ]; |
} |
positon = j; |
break ; |
} |
} |
if (positon == - 1 ) { |
newArray[i] = intArray[i]; |
} else { |
newArray[positon] = intArray[i]; |
positon = - 1 ; |
} |
} |
return newArray; |
} |
} |
/**运行结果: |
The unsorted order arrays is : [3, 4, 9, 7, 1, 2] |
The sorted order arrays is : [1, 2, 3, 4, 7, 9] |
**/ |