首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C++ 插入排序

C++ 插入排序

作者头像
Dragon水魅
发布2026-01-23 19:05:42
发布2026-01-23 19:05:42
1080
举报
基本原理

  • 设置第一个元素为有序区域,有序区域之后的第一个元素设为“标兵”。
  • 反向遍历有序区域,如果“标兵”小于其中的某一元素,则使该元素右移。
  • 当“标兵”大于某一元素时,将“标兵”插入该位置(因为是有序区域,“标兵”前面的数据一定是有序排列的)。
  • 更新有序区域和“标兵”, 持续遍历。

以下 gif 参考https://blog.csdn.net/L_PPP/article/details/108498581: 第一次遍历效果:

在这里插入图片描述
在这里插入图片描述

第二次遍历效果:

在这里插入图片描述
在这里插入图片描述
代码实现
代码语言:javascript
复制
#include <iostream>
#include <string>

using namespace std;

int main(){
    int array[10] = {1, 9, 5, 7, 3, 6, 2, 8, 4, 0};
    int len = sizeof(array) / sizeof(array[0]);
    int flag = 0;  // 标记
    for (int i = 0; i < len; i++)
    {
        flag = i;
        for (int j = i; j > 0; j--)
        {
            int temp = array[j];
            if (array[j] < array[j - 1])  // 有可插入的值
            {
                array[j] = array[j - 1];  // 数据前移
            }
            else
            {
                break;
            }
            array[j - 1] = temp;  // 数据插入
        }
    }

    for (int i = 0; i < len; i++)
    {
        cout << array[i] << " ";
    }
}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本原理
  • 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档