zoukankan      html  css  js  c++  java
  • InsertionSort(插入排序)原理及C++代码实现

    插入排序是最常用的排序之一。

    在输入规模较小的时候,插入排序的性能较好。

    最好情况下插入排序的时间复杂度是O(n),平均情况则为O(n2)。

    插入排序是稳定的排序算法之一。

    基本思路为从第二个元素开始,依次插入前面已经排好序的序列,利用循环不变式很容易理解。

    代码如下:(仅供参考)

     1 void InsertionSort(int * const begin, int * const end) {
     2     int i, j;
     3     int key;
     4     for (i = 1; i < end - begin; ++i) {
     5         key = *(begin + i);
     6         for (j = i - 1; j >= 0 && (*(begin + j) > key); --j) {
     7             *(begin + j + 1) = *(begin + j);
     8         }
     9         *(begin + j + 1) = key;
    10     }
    11 }

    注:指针需要支持随机访问

  • 相关阅读:
    单词 统计
    第九周周进度报告
    日常总结
    Docker 初识
    读书笔记
    《未来简史》有感
    自己的Java规范文档
    nginx自动部署脚本
    jdk 自动化脚本
    我Java学习时的模样(三)
  • 原文地址:https://www.cnblogs.com/yxsrt/p/12193568.html
Copyright © 2011-2022 走看看