插入排序
插入排序的逻辑比较简单,就是将一个数据插入到已有的一个有序的数组中,使新的数组依然有序。
需要注意的是需要再有序的数组中找到合适的插入位置以及保证新的数组依然有序。
下面是我用java实现的排序,代码已经上传到我的Github
public class InsertSort {
/**
* 交换数组里面的2个元素
* @param list
* @param a
* @param b
*/
public static void swap(int[] list , int a , int b) {
int temp = list[a];
list[a] = list[b];
list[b] = temp;
}
/**
* 将列表下标为n个元素插入到前n个元素之间,使得list前n+1个元素是有序的
* @param list
* @param n
*/
public static void insertNum(int[] list , int n ) {
for( int i = n-1 ; i >= 0 ; i-- ) {
if( list[n] < list[i] ) {
swap(list,n,i);
n = i;
}
}
}
public static void main(String[] args) {
int[] test = {23,44,2,3,11,46,38,5,9,88,5,22};
for( int i = 0 ; i < test.length ; i++ ) {
insertNum(test, i);
System.out.println(Arrays.toString(test));
}
}
}
若有错误,还请指正。