九大排序之插入排序

本文参考自九大排序算法之插入排序(原理及实现)
算法思路:每趟将一个待排序的元素,按照关键字值得大小,插入已经排好序部分的适当位置,直到所有元素排序完成

实例:
原始序列:49、38、65、97、76、13、27、49


第一趟,将49看成已经排好序的部分,即49是有序的,那么第一趟排序的结果就是:
有序:{49}
无序:{38,65,97,76,13,27,49}
第二趟,插入38,那么第二趟排序的结果就是:
有序:{38,49}
无序:{65,97,76,13,27,49}
第三趟,插入65,那么第三趟排序的结果就是:
有序:{38,49, 65}
无序:{97,76,13,27,49}
第四趟,插入97,那么第四趟排序的结果就是:
有序:{38,49, 65, 97}
无序:{76,13,27,49}
第五趟,插入76,那么第五趟排序的结果就是:
有序:{38,49, 65,76, 97}
无序:{13,27,49}
第六趟,插入13,那么第六趟排序的结果就是:
有序:{13,38,49, 65,76, 97}
无序:{27,49}
第七趟,插入27,那么第二趟排序的结果就是:
有序:{13,27,38,49, 65,76, 97}
无序:{49}
第八趟,插入49,那么第二趟排序的结果就是:
有序:{13,27,38,49,49, 65,76, 97}
无序:{}


public int[] insertionSort(int[] arr){
    if(arr == null || arr.length = 0){
        return arr;
    }
    int temp = 0;
    int length = arr.length;
    for(int i = 1; i < length; i++){
        temp = arr[i];
        for(int j = i; j > 0 && arr[j] > temp; j--){
            arr[j] = arr[j - 1];
        }
        arr[j] = temp;
    }
    return arr;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目 插入排序及希尔排序的并行化实现 插入排序定义 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,...
    囧略囧阅读 6,442评论 0 0
  • 前言 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中...
    宝塔山上的猫阅读 4,738评论 1 21
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    zwb_jianshu阅读 5,072评论 0 0
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,605评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,100评论 0 15

友情链接更多精彩内容