插入排序算法介绍
插入排序算法
插入排序的基本思路是将一个数据插入已经排好序的序列中,从而得到一个新的有序数据,该算法适用于少量数据的排序,是稳定的排序算法。
show code
插入排序算法Java实现
/**
* 升序插入排序
* @param arr 待排序数组
* @return 升序排序数组
*/
public static int[] insertSort(int[] arr){
for (int i = 1; i < arr.length; i++) {
//待插入的数
int insertVal = arr[i];
//待插入的位置(准备和前一个数进行比较)
int index = i-1;
//从数组中找到比待插入数据大的数据的索引位置index,然后将该index位置后的元素向后移动,接着将待插入的数据插入index+1的位置,如此重复,直到整个数组排序完成
//如果已存在的数比待插入的数小
while (index>=0 && insertVal<arr[index]){
//则将已存在的数向后移动
arr[index+1] = arr[index];
//将index向前移动
index--;
}
//将插入的数放入合适的位置
arr[index+1] = insertVal;
}
return arr;
}
测试
public static void main(String[] args) {
int[] array = new int[5];
array[0] = 6;
array[1] = 2;
array[2] = 5;
array[3] = 8;
array[4] = 7;
System.out.println("排序前"+ JSON.toJSONString(array));
System.out.println("排序后"+JSON.toJSONString(insertSort(array)));
}
结果
排序前[6,2,5,8,7]
排序后[2,5,6,7,8]
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!