算法导论->算法基础->2.1插入排序 (从小到大)

2023-05-16

1 伪代码



2 执行过程图



3 c语言实现完整代码

#include<stdio.h>
#include<malloc.h>

typedef struct MyArray{
  int *pbase;
  int length;
}MyArray,*PMyArray;

PMyArray initMyArray();
void traverse(PMyArray pMyArray);
void insertSort(PMyArray pMyArray);
int main(){
     //初始化排序数组
     PMyArray pMyArray =  initMyArray();
    //遍历数组
     printf("数组元素分别为:\n");
     traverse(pMyArray);
     //排序
    insertSort(pMyArray);
    //遍历数组
    printf("\n数组元素分别为:\n");
    traverse(pMyArray);
    return 1;
};

//插入排序
void insertSort(PMyArray pMyArray){
    if(pMyArray->length <= 0){
        printf("数组长度为0,排序失败");
    }
    else if(pMyArray->length == 1){

    }else{
        int j = 1;
        for(; j < (pMyArray->length); j++){
                ;
                int key = *(pMyArray->pbase +j);
                int i = j - 1;
                while( i >= 0 &&  *(pMyArray->pbase + i) > key ){
                    * (pMyArray->pbase + i + 1)  = *(pMyArray->pbase + i );
                     i--;
                }
                *(pMyArray->pbase + i + 1) = key;

        }

    }


};

//遍历数组
void traverse(PMyArray pMyArray){
    int i;
    for(i = 0 ; i < pMyArray->length;i++){
        printf("%d ",*(pMyArray->pbase + i));
    }
}
//初始化数组
PMyArray initMyArray(){
    //初始化参数
    int lengh;
    printf("输入需要排序的个数:");
    scanf("%d",&lengh);
    //初始化结构体
    PMyArray pMyArray = (MyArray *)malloc(sizeof(MyArray));
    if(pMyArray == NULL){
        printf("内存不够,初始化pMyArray失败");
        exit(1);
    }
    pMyArray->length = lengh;
    pMyArray->pbase = (int *)malloc(sizeof(int)*lengh);

    int i = 0;
    for(;i < pMyArray->length; i++){
        printf("请输入第%d个元素值:",i);
        int value;
        scanf("%d",&value);
        *(pMyArray->pbase +i) = value;

    }
    return pMyArray;

}




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法导论->算法基础->2.1插入排序 (从小到大) 的相关文章

  • 我的2013,梦在路上

    我的2013 xff0c 在路上 今年最后一次给姐姐打电话 xff0c 她在那里像我炫耀自己和爸爸妈妈一起跨年 xff0c 说1314的意义 xff0c 而我还在北京苦逼着 回想2013年对于我来说 xff0c 或许是不错的一年 这一年我进
  • mysql安装时的粗心错误:last error unable to update security settings. access denied for user 'root' @ 'localh

    来自 梦想家haima 39 s blog gt http blog dreamwe cn 这个报错出现在mysql最后 当你看到mysql的最后一步需要设置密码可能你开心得很 Mysql就快安装好了 赶快输入三行密码都是root 结果报下
  • @SuppressWarnings

    简介 xff1a java lang SuppressWarnings是J2SE 5 0中标准的Annotation之一 可以标注在类 字段 方法 参数 构造方法 xff0c 以及局部变量上 作用 xff1a 告诉编译器忽略指定的警告 xf
  • 欢迎使用CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • Linux之强大的awk

    来自 梦想家 Haima s blog gt http blog dreamwe cn awk简介 awk是Linux中的一个命令 xff0c 用来做文本处理与分析 xff0c 功能简单强悍 xff0c 同时它也是一门编程语言 awk处理文
  • ucos源码分析(一)

    时间 2018 01 27 本人目前是大三学生 电子信息工程专业 xff0c 在大学前俩年的时间 xff0c 一直在使用和学习单片机 xff0c 不过也仅仅是从 xff15 xff11 到 xff13 xff12 xff0c 马上要面临就业
  • 随笔——Python & C++ 混用——使用cmake生成c++动态库

    Python amp C 43 43 混用 xff0c 使用cmake 生成c 43 43 动态库 xff0c 可供python调用 说明 xff1a test cpp为源文件 add h为头文件 源文件使用第三方库opencv CMake
  • 机会都是留给有准备的人,你在准备什么?| 每天成就更大成功

    最近养成一个习惯 xff0c 就是每晚抄书 xff0c 大概200字左右 xff0c 在抄书的过程中反思了一个问题 xff1a 因为字写的不漂亮 xff0c 于是就在抄书的时候就有意的去练字 xff0c 这样抄书的精力就被分散了一部分出去
  • 《SQL Server 2005开发技术大全》分享一本书

    数据库是一个非常重要的领域 xff0c 不管是什么样的系统 xff0c 都必须要与数据库打交道 xff0c 因此作为一个程序员来讲 xff0c 数据库的基本知识技能是必须要掌握的 我接触C 已经有两年半的时间了吧 xff0c 在学习之初是接
  • golang语言rsa加解密及签名验签

    golang语言rsa加解密及签名验签 96 rsa 96 算法概述 96 Rsa 96 结构体封装封装的优点使用案例 rsa算法 概述 rsa是一种非对称的可逆的加密算法 xff0c 对加密数据长度有限制 xff0c 同时rsa也提供了数
  • 异常与错误处理

    异常与错误处理 PHP的异常与错误是分开的 xff0c 当程序出现异常时会throw一个 Exception 或子类 对象 xff0c 但是当出现错误时会触发一个错误 1 异常处理 1 1 通过try catch主动处理异常 span cl
  • 设计模式

    1 什么是模式 设计模式是对某些典型易变问题的特定解决方案 xff0c 这些问题和解决方案经过分类总结 xff0c 并且为了方便交流给每个解决方案都起了特定的名字 模式是为了解决变化的问题 xff0c 将变化的问题进行封装 xff0c 让变
  • pdo-mysql

    pdo mysql PHP连接数据库推荐使用PDO xff0c PDO扩展为PHP访问数据库定义了一个轻量级接口 我们可以通过实现PDO接口的每个数据库驱动来访问数据库服务 访问mysql数据库服务 xff0c 我们使用PDO MYSQL驱
  • db封装

    db封装 以下Connection类封装支持以下几个特性 1 参数绑定防止sql注入2 读写分离3 多主多从 xff0c 多节点负载均衡4 故障自动摘除及自动恢复 代码实现 span class token delimiter import
  • 数据结构

    1 数据结构 提到算法不能不提数据结构 xff0c 数据结构就是数据元素按照一种或多种关系的集合 xff0c 按照逻辑结构划分 xff0c 可以分为 xff1a 1 1 集合 集合是由一堆无序的 相关联的 xff0c 且不重复的数据元素组成
  • 数据切分——Atlas介绍

    Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目 它在MySQL官方推出的MySQL Proxy 0 8 2版本的基础上 xff0c 修改了大量bug xff0c 添加了很多功能
  • Nginx负载均衡:分布式/热备Web Server的搭建

    Nginx是一款轻量级的Web 服务器 反向代理服务器 及电子邮件 xff08 IMAP POP3 xff09 代理服务器 xff0c 并在一个BSD like 协议下发行 由俄罗斯的程序设计师Igor Sysoev所开发 xff0c 供俄
  • 数据切分——Atlas读写分离Mysql集群的搭建

    关于数据切分的原理可以参见博客 xff1a http blog csdn net jhq0113 article details 44226789 关于Atlas的介绍可以参见博客 xff1a http blog csdn net jhq0
  • k8s 官方文档

    k8s 官方文档 https kubernetes io zh docs home
  • 数据切分——Mysql分区表的建立及性能分析

    Mysql的安装方法可以参考 xff1a http blog csdn net jhq0113 article details 43812895 Mysql分区表的介绍可以参考 xff1a http blog csdn net jhq011

随机推荐

  • 利用C++求解一元二次方程

    题目 xff1a 求解一元二次方程 xff1a ax 43 bx 43 c 61 0 的解 xff0c 其中a 61 1 b 61 3 c 61 2 分析 xff1a 大家都知道一元二次方程的解有三种情况 xff0c 即考虑 61 xff0
  • VS2019配置BOOST-v1.70.0库

    文章目录 vs2019配置c 43 43 boost库安装编译Boost c 43 43 library新建vs2019 c 43 43 项目 xff0c 并添加boost依赖库代码测试 c 43 43 boost库说明主要分类常用库相关图
  • sudo aptitude install sudo apt-get update sudo apt-get install libatlas-dev

    记坑 xff1a sudo apt get update 报错 xff1a 没有公钥 xff0c 解决办法 xff1a sudo apt key adv keyserver keyserver ubuntu com recv keys 13
  • 深度学习综述之分类(适合深度学习面试者看)

    目前图像方向 xff0c 主要用深度学习进行分类 xff0c 定位 xff08 回归 xff09 xff0c 检测 xff0c 那么她三主要区别是什么呢 xff1f 分类 xff1a 是什么 xff1f 定位 xff1a 在哪里 xff1f
  • tf变换及工具说明(1)

    tf变换及工具说明 xff08 1 xff09 xff09 tf说明解释tf 库常用方法tf数据类型静态tf发布tf动态发布tf接收坐标转换平面坐标系例子 坐标转换传递 tf说明解释 在ros下有一个库 xff1a tf xff0c 其主要
  • Python实现微信自动回复(机器人版本)

    现在微信使用程度越来越高 xff0c 就想到能不能微信实现像qq似得自动回复功能 在实现的过程中发现 xff0c 图灵机器人也有微信的接口 xff0c 就拿来用了 机器人创建完成后 xff0c 会生成一个APIkey xff0c 用来和程序
  • PPTV面试题——括号消除

    题目 xff1a 给定一个字符串 xff0c 设计一个算法消除其中承兑的括号 xff0c 如果括号不成对 xff0c 提示异常 xff08 error xff09 如 xff08 1 xff0c xff08 2 3 xff09 xff0c
  • reStructuredText(rst)简介+安装+简单说明

    reStructuredText简介 43 安装 43 简单说明 reStructuredText是什么 reStructuredText是扩展名为 rst的纯文本文件 xff0c 含义为 重新构建的文本 xff0c 是python编程语言
  • 【VS Code】"The 'clang-format' command is not available. Please check your clang-format."报错

    文章目录 34 The 39 clang format 39 command is not available 34 报错说明一 安装插件 clang format 二 解决方案三 参考链接 34 The clang format comm
  • 大环境不好,找工作太难?看我历时10天三面阿里,成功入职...

    三面大概九十分钟 xff0c 问的东西很全面 xff0c 需要做充足准备 xff0c 就是除了概念以外问的有点懵逼了 xff08 呜呜呜 xff09 回来之后把这些题目做了一个分类并整理出答案 xff08 强迫症的我狂补知识 xff09 分
  • Ubuntu18.04 远程命令行下安装并启动x11vnc

    最近做项目需要连接ubuntu的图像界面 xff0c 开始用XQuartZ xff0c 界面太low太丑 xff0c 而且有些应用启动不了 xff1b 后来转到使用x11vnc xff0c 在网络上查看了很多交安装x11vnc的方法 xff
  • CMakeLists.txt编写常用命令

    文章目录 一 设置cmake最小版本二 设置项目名称三 设置编译目标类型四 指定编译包含的源文件1 明确指明包含的源文件2 搜索指定目录的所有的cpp文件3 自定义搜索规则4 包含多个文件夹里的文件 五 设置包含目录六 设置链接库搜索目录七
  • Docker 拉取镜像及标签 pull | tag

    Docker 拉取镜像及标签 pull tag 重翻Fabric项目的源码 xff0c 发现Docker部分内容 xff0c 有很多不尽理解的地方 xff0c 看着看着 xff0c 就看到使用docker pull拉取Fabric镜像及使用
  • USB大容量存储设备无法启动该怎么办?

    USB大容量存储设备 xff08 USB mass storage device class xff0c 也称为USB MSC或UMS xff09 是一个协议 xff0c 允许一个USB接口的设备与电脑相连接 xff0c 以便在两者之间传输
  • Tensor数据相关的运算、函数讲解及与numpy区别

    Tensor tensorflow 中使用它来表示数据 可以看做多维数组或者list 标量是张量 xff0c 向量是张量 xff0c 矩阵是张量 xff0c 矩阵的矩阵是张量 常用几种定义方法 1 variable变量 xff0c 一般是可
  • QGC4.1.2二次开发(1)--Qt5.12.6 andorid开发环境搭建

    开发环境介绍 xff1a QGC版本 xff1a 4 1 2 Qt版本 xff1a 5 12 6 xff08 QGC要求 xff09 windows平台开发 xff1a vs2017 andorid平台 xff1a JDK Java SE
  • SITL--仿真多架无人机

    SITL仿真环境搭建 ardupliot源码下载与编译 首先需要安装Ardupliot开源飞控的开发环境 xff0c 参考这个知乎博主的文章 xff1a 链接 我的安装环境 ubuntu20 04 先下载Ardupilot源码 xff0c
  • QGC4.1.2二次开发(2)QGC连接与数据收发

    文章目录 前言一 连接原理二 连接过程与数据收发1 连接过程 xff08 以串口为例 xff09 2 数据发送 总结 前言 QGC连接无人机飞控时支持多种连接方式 xff0c 并且可以自动连接 xff0c 不由让人好奇它的实现原理 xff0
  • GRPC远程调用

    目录 FAQ gRPC1 gRPC原理 1 1 什么是RPC 1 2 gRPC的一些特性 1 3 gRPC支持的编程语言 1 4 gRPC的使用场景 1 5 谁在使用gRPC 1 6 gRPC设计之初的动机和原则 2 数据封装和数据传输问题
  • 算法导论->算法基础->2.1插入排序 (从小到大)

    1 伪代码 2 执行过程图 3 c语言实现完整代码 include lt stdio h gt include lt malloc h gt typedef struct MyArray int pbase int length MyArr