【排序算法】插入排序算法Java实现

1、插入排序基本思想

类似于我们打扑克,维持一个有序序列,刚开始有序序列是空。

每次从无序的数组中取出一个数据,插入有序的序列中,使有序序列仍然保持有序。

2、插入排序的特点

时间复杂度:O(n2), 稳定,适用于少量数据,如果已经部分排序好,要插入一个数据,则用插入排序再好不过了

3、Java实现代码

public int[] insertSort(int[] arr){

    for(int i=1; i<arr.length; i++){
//要插入的数据
int insertValue = arr[i];
//被插入的位置
int index = i-1; while(index >= 0 && insertValue < arr[index]){
     //将arr[index]向后移动 arr[index
+1] = arr[index];
     //将index向前移动 index
--; }
     //将插入的数据放入合适的位置 arr[index
+1] = insertValue; } }
以上代码单纯理解可能很抽象,建议用实际的数组模拟一遍,看看每一步的变化
如 arr = [6,2,5,8,7]

 

posted @ 2021-08-15 11:09  CEO雷总  阅读(169)  评论(0编辑  收藏  举报