当前位置: 首页 > article >正文

C语言——插入排序

先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

#include <stdio.h>
#include <stdlib.h>
void insertion_sort(int *arr, int n)
{
    for (int i = 1; i < n; i++)
    {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && key < arr[j])
        {
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = key;
    }
}
void print_arry(int *arr,int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("%d ", arr[i]);
    }
}
int main()
{
    int n;
    scanf_s("%d", &n);
    int *arr = (int *)malloc(sizeof(int) * n);
    if (arr == NULL)
    {
        return 1;
    }
    else
    {
        for (int i=0; i < n; i++)
        {
            scanf_s("%d", arr + i);
        }
        insertion_sort(arr, n);
        print_arry(arr, n);
    }
    free(arr);
    return 0;
}

使用了malloc函数动态开辟内存空间,最后记得要释放。

自定义了两个函数模块,一个是插入排序函数,一个是打印函数

结果


http://www.kler.cn/a/292383.html

相关文章:

  • <AI 学习> 下载 Stable Diffusions via Windows OS
  • 【PyTorch】libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent
  • leetcode hot100【LeetCode 236.二叉树的最近公共祖先】java实现
  • 【Qt聊天室客户端】消息功能--发布程序
  • Sql server查询数据库表的数量
  • 一键生成本地SSL证书:打造HTTPS安全环境
  • 文本匹配任务(下)
  • 红队攻防 | 利用GitLab nday实现帐户接管
  • 【2024数模国赛题目解析丨免费分享】
  • CompleteableFuture异步编程框架
  • [linux基础知识]创建新用户并使用该用户
  • 【2024数学建模国赛赛题解析已出】原创免费分享
  • 神经网络中激活函数介绍、优缺点分析
  • 何为图像处理,有哪些处理方法
  • AGV行业遇冷,叉车AGV逆风崛起:180家企业掀起血战
  • linux中vim常用命令大全详细讲解
  • 几乎每一位面试官都会关注的能力,你做到了吗?
  • Linux 磁盘管理-终于把fdisk命令创建分区挂讲明白了
  • 优化芋道后台菜单管理卡顿问题element-plus版本
  • WPS Office for Linux 12 个人版上线deepin 23商店:UI 视觉重构,新增多项 AI 功能
  • Kafka如何保证消息不丢失?
  • win11环境android studio中AVD目录修改问题解决
  • 青岛实训 8月21号 day33
  • Type-C接口上的DisplayPort
  • 【直播原理大揭秘】世预赛18强国足直播瞬时流量过大,爱奇艺为此道歉
  • 产品经理入门基础