首页 > 编程语言 >排序算法01 - 插入排序 (C语言)

排序算法01 - 插入排序 (C语言)

时间:2024-03-18 11:55:05浏览次数:15  
标签:01 C语言 int 插入排序 哨兵 排序

原理

将a[0]作为哨兵,然后从a[2]开始遍历数组,如果发现前者比后者大,则将后者存入哨兵,再从后向前调整数组元素的位置,最后将哨兵插入即可。

图示

代码

#include<stdio.h>
const int N=10010;
int a[N];n;
void insert_sort(int a[])
{
    int j;
    for(int i=2;i<=n;i++)
    {
        if(a[i]<a[i-1]) {
            a[0] = a[i];
            for (j = i - 1; a[j] > a[0]; j--)
                a[j + 1] = a[j];
            a[j+1] = a[0];
        }
    }
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    insert_sort(a);
    for(int i=1;i<=n;i++)
        printf("%d ",a[i]);
    return 0;
}

标签:01,C语言,int,插入排序,哨兵,排序
From: https://www.cnblogs.com/zmhzs/p/18080040

相关文章

  • Origin 2018非常卡顿,占用内存非常大
    以前用的Origin版本是OriginPro8.1。后来发现Origin2018的界面已经有汉化版本的了,并且也比较好用。但是安装之后发现,Origin201864bit版本运行一段时间之后,就非常卡顿,运行非常缓慢,占用内存动不动就达到好几个G,随便点一个地方要卡顿十几秒钟,甚至几十秒。在网上百度一番之后发......
  • MS17_010 漏洞利用与安全加固
    文章目录环境说明1MS17_010简介2MS17_010复现过程3MS17_010安全加固环境说明渗透机操作系统:kali-linux-2024.1-installer-amd64漏洞复现操作系统:cn_windows_7_professional_with_sp1_x64_dvd_u_6770311MS17_010简介MS17_010漏洞后门利用程序EternalB......
  • 电子级氢氟酸储存好物:特氟龙试剂瓶,透明可视进口原料PFA取样瓶清洗后金属杂质小于0.01p
    PFA试剂瓶作为实验室中常备器皿耗材之一,主要用来盛放、储存和运输样品,根据使用条件不同,也可叫特氟龙取样瓶、样品瓶、储样瓶、广口瓶、进样瓶等。近年来随着新兴行业的快速发展,广泛应用于半导体、新材料、多晶硅、硅材、微电子等行业。根据瓶口口径不同,可分为广口瓶和窄口瓶,......
  • 内存函数(C语言)
    文章目录内存函数memcpymemmovememsetmemcmp内存函数使用内存函数需要包含头文件<string.h>memcpy将内存的数据拷贝到新空间void*memcpy(void*destination,constvoid*source,size_tnum);memcpy函数能将源地址后num个字节的数据拷贝到目标空间区别内存......
  • 【华为OD】C卷真题 100分:Wonderland游乐园 C语言代码实现[思路+代码]
      C++、java、python代码:【华为OD】C卷真题100分:Wonderland游乐园C/C++代码实现[思路+代码]-CSDN博客【华为OD】C卷真题100分:Wonderland游乐园Java代码实现[思路+代码]-CSDN博客【华为OD】C卷真题100分:Wonderland游乐园python代码实现[思路+代码]-CSDN博客  题......
  • c语言的基础
    一:数据类型1:整数类型包括整型,长整型。短整型。区别在于,采用不同位数的二进制编码表示,占用不同的存储空间,表示不同的数值范围,32位操作系统类型说明符数的范围字节数int(整型)-2147483648到21474836474unsignedint(无符号整型)0~65535,即0~(2-1)4......
  • 【C语言——浮点数在内存中的存储(补充篇)】
    一.概况     根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数都可以表示为以下形式:V=(-1)^s*M*2^E1.(-1)^表示符号位,当s=0时,V为正数;当s=1,V为负数。2.M表示有效数字,M是大于等于1,小于2的。3.2^E表示指数。  二.存储过程IEEE754对有效数字M......
  • 大数据011_Linux(ps,kill,top,df,iostat,sar)
    目录一、进程管理 1、查看进程ps2、查看指定进程3、关闭进程kill二、主机状态1、查看系统资源占用top(1)top命令内容详解(2)top命令选项(4)top交互式选项2、磁盘信息监控(1)查看硬盘使用情况df(2)查看CPU、磁盘相关信息iostat3、网络状态监控sar-nDEV一、进程......
  • PTA浙大版《C语言程序设计(第4版)》2—6
    练习2-6计算物体自由下落的距离一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/。输入格式:本题目没有输入。输出格式:按照下列格式输出height=垂直距离值代码长度限制  16KB时间限制  400ms内存限制  64MB......
  • 实验一 c语言开发环境使用和数据类型、运算符、表达式
    task1`#include<stdio.h>include<stdlib.h>intmain(){printf("o\to\n");printf("<H>\t<H>\n");printf("II\tII\n");system("pause:");return0;}`task2`#include......