首页 > 其他分享 >直接插入排序

直接插入排序

时间:2023-12-02 14:14:57浏览次数:51  
标签:arr 12 int 插入排序 元素 && 直接

0 1 2 3 4
5 2 8 12 3

 

 

 

 

 

 

从下标1开始遍历,默认第一个元素是已排序序列。

例如对元素3进行插入排序:

下标0-3分别是2-5-8-12;

此时k=arr[4]=3;  j=i-1=3;  从后往前遍历找到k应该插入的位置  当while循环条件  j>=0&&arr[j]>k  一直成立时,arr[j+1]=arr[j]; 元素后移一位

不满足while循环条件时,arr[j+1]=k;  这是元素3最终插入的地方

void InsertSort(int arr[],int n)
{
    int i,j,k;
    for(i=1;i<n;i++)
    {
        k=arr[i];
        j=i-1;
        while(j>=0&&arr[j]>k)
        {
            arr[j+1]=arr[j];
            j--;
        }
        arr[j]=k;
    }
}

 

标签:arr,12,int,插入排序,元素,&&,直接
From: https://www.cnblogs.com/simpleset/p/17871520.html

相关文章

  • Google Colab 现已支持直接使用 transformers 库
    GoogleColab,全称Colaboratory,是GoogleResearch团队开发的一款产品。在Colab中,任何人都可以通过浏览器编写和执行任意Python代码。它尤其适合机器学习、数据分析和教育目的。从技术上来说,Colab是一种托管式Jupyter笔记本服务。用户无需设置,就可以直接使用,同时还能获得......
  • 小小面板,直接拿下----PanelForensics
    本项目旨在让各公司出题别再问关于面板的任何问题!!!!(尤其是比武)通过前期的分析和逆向,目前支持宝塔面板、小皮面板和1Panel,每种面板仅测试了一个服务器,如遇问题请提issue!!戳我下载......
  • Apipost推出IDEA插件,代码写完直接调试
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • Apipost推出IDEA插件,代码写完直接调试
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • oracle 源端资料库通过dblink访问目标端资料库会话直接的关系
    1.知道目标端的会话信息,怎么找到对应的源端资料库的会话连接信息?--目标端selectPROCESSfromv$sessionwhereusername='HR';--源端SELECTADDRFROMV$PROCESSWHERESPID=5344;SELECT*FROMV$SESSIONWHEREPADDR='0000000EBBDE78A0';2.知道源端会话信息,怎......
  • 关键字 开发-06 封装yaml文件直接生成测试用例
    前言前面几个章节,我们主要是如何通过yaml文件的数据自动转换成测试用例,并按照关键字去执行,如下是之前我们通过参数化的形式手动执行用例。fromutils.runimportRunByKey#获取文件路径file_path=Path(__file__).parent.joinpath('data','login.yml')@pytest.mark.para......
  • offline RL | BCQ:学习 offline dataset 的 π(a|s),直接使用 (s, π(s)) 作为 Q learni
    题目:Off-PolicyDeepReinforcementLearningwithoutExploration,ICLR2019pdf版本:https://arxiv.org/pdf/1812.02900.pdfhtml版本:https://ar5iv.labs.arxiv.org/html/1812.02900GitHub:https://github.com/sfujim/BCQ参考博客:https://zhuanlan.zhihu.com/p/493039753,......
  • socket.on可以直接添加自定义事件吗,理解socket的事件触发与响应
    在Web开发中,socket.on通常是用于注册处理特定事件的回调函数的方法。它主要用于处理Socket.IO库中的预定义事件,例如"connect"、"disconnect"、"message"等。然而,Socket.IO也允许你添加自定义事件,以便在客户端和服务器之间进行自定义的双向通信。要使用socket.on来处理自定义事件,......
  • [Luogu] P7910 [CSP-J 2021] 插入排序
    [CSP-J2021]插入排序-洛谷昨天下午爆肝一下午都没整出来(悲是我太菜了思路第一种想法,暴力即,每次修改操作后重新维护整个数组,时间复杂度\(O(Qn^2)\),能拿52pts但是,想要拿满分,很简单,只需要把排序的双层循环\(n^2\)变为\(n\)即可因为冒泡是对每个点都进行枚举,但是需要修改的......
  • 使用python包os.system执行命令与直接在终端执行命令的区别
     区别:1.使用systemctl命令执行时,即使是以root用户身份执行,也会关注服务的用户组权限。这是因为systemctl在执行服务管理操作时,会检查服务的配置文件中设置的用户和用户组权限,并确保当前用户具有足够的权限来管理服务。2.当你以root用户身份使用os.system执行命令时,它可能会绕......