哨兵排序算法

news2024/9/28 13:27:27

代码展示 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 20
//直接排序
typedef struct
{
    int r[MAXSIZE + 1];
    int length;
} SqList;
int InsertSort(SqList* L)
{
    int i, j;
    for (i = 2; i <= L->length; i++)
    {
        if (L->r[i] < L->r[i - 1])
        {
            L->r[0] = L->r[i];//设置哨兵
            L->r[i] = L->r[i - 1];//交换位置
            for (j = i - 2; L->r[0] < L->r[j]; j--)
            {
                L->r[j + 1] = L->r[j];
            }
            L->r[j + 1] = L->r[0];
        }
        printf("第%d躺排序结果:", i-1);
        for (int k = 1; k <= L->length; k++)
        {
           /* if (k == L->length)
                printf("%d", L->r[k]);
            else*/
                printf("%d ", L->r[k]);
        }
        printf("\n");
    }
    return 1;
}
// 时间复杂度:O(n^2)  n为元素个数
int main()
{
    SqList L;

    int n;
    while (scanf("%d", &n) != -1)
    {
        L.length = n;

        for (int i = 1; i <= L.length; i++)
        {
            scanf("%d", &L.r[i]);
        }
        L.r[0] = -1;//数组下标为0的位置初始值为-1,设置为哨兵
        InsertSort(&L);
    }
      return 0;
}

运行结果与画图理解分析

第一行:输入数据的个数

第二行:从数组下标为1开始输入数据

数组下标为0的位置初始值为-1,设置为哨兵

5217103141f446cabf93037d47bf0973.png

 ea993183893a4749850016c50ae7d0fd.png

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10.2 TCP IP模型、IP协议、IPv4、子网掩码

TCP / IP 协议族 IP协议 IPv4地址 IPv4地址分类 子网掩码 子网掩码用来区分 网络地址 和 主机地址 真题 1

1024页 | 20万字详细讲解大数据系统平台设计

大数据引擎系统针对互联网业务系统对海量大数据的分布式存储、计算、 分析挖掘、建模及业务查询需求&#xff0c;通过提供基于分布式数据仓库的离线计算、实 时计算等服务&#xff0c;实现涵盖数据全生命周期的完整数据处理。大数据服务分系统主 要任务是构建大数据仓库&#x…

IP风险画像如何维护网络安全

在当今数字化时代&#xff0c;互联网已成为我们生活、工作不可或缺的一部分。然而&#xff0c;随着网络应用的日益广泛&#xff0c;网络安全问题也日益凸显。为了有效应对网络安全挑战&#xff0c;IP风险画像技术应运而生&#xff0c;正逐步成为构建网络安全新防线的重要工具。…

华为云征文|华为云Flexus X实例docker部署MinIO对象存储系统obs

华为云征文&#xff5c;华为云Flexus X实例docker部署MinIO对象存储系统obs 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品。Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力…

深度学习从入门到精通——基于unet++算法实现细胞分割

模型定义 import torch from torch import nn__all__ [UNet, NestedUNet]class VGGBlock(nn.Module):def __init__(self, in_channels, middle_channels, out_channels):super().__init__()self.relu nn.ReLU(inplaceTrue)self.conv1 nn.Conv2d(in_channels, middle_channe…

matlab实现简单的保角变换

用虚数的思想可以在虚坐标系内绘制圆&#xff0c;同样可以用虚数的想法将这个圆进行变换 用MATLAB绘制一个坐标在(1,1)的圆代码如下 % 定义半径和圆心 radius 10; center 1 1i; % 圆心位于 (1,1) % 创建角度向量&#xff0c;从0到2*pi theta linspace(0, 2*pi, 100);% 计…

运算放大器组成的比较器

D1,D2为5.3V稳压管。运放输出高时&#xff0c;为6V.运放输入1V&#xff0c;运放正端为2V. 运放输出低时&#xff0c;为-6V&#xff0c;运放输入4V&#xff0c;运放正端约为2V&#xff0c;实测值2.03V

JavaScript 实现虚拟滚动技术

虚拟滚动 虚拟滚动&#xff08;有时称为 虚拟列表、虚拟滚动条&#xff09;是 JavaScript 中的一种技术&#xff0c;旨在优化大数据量的列表渲染&#xff0c;尤其是当有成千上万的数据项时&#xff0c;直接渲染整个列表会导致性能问题。虚拟列表通过只渲染用户视口中可见的那一…

【HuggingFace Transformers】OpenAIGPTModel源码解析

OpenAIGPTModel源码解析 1. GPT 介绍2. OpenAIGPTModel类 源码解析 说到ChatGPT&#xff0c;大家可能都使用过吧。2022年&#xff0c;ChatGPT的推出引发了广泛的关注和讨论。这款对话生成模型不仅具备了强大的语言理解和生成能力&#xff0c;还能进行非常自然的对话&#xff0c…

手机免费录屏软件,这3款软件最佳选择

在数字化浪潮的推动下&#xff0c;智能手机已成为我们生活中不可或缺的一部分。而在这些小巧而强大的设备中&#xff0c;录屏功能逐渐崭露头角&#xff0c;成为记录屏幕精彩瞬间的得力助手。无论是游戏的高光时刻、APP的使用教程&#xff0c;还是进行远程会议&#xff0c;录屏功…

2024自动化测试面试真题(附答案)!

一、编程语法题 1 、 python 有哪些数据类型 python 数据类型有很多&#xff0c;基本数据类型有整型&#xff08;数字&#xff09;、字符串、元组、列表、字典和布尔类型等 2 、怎么将两个字典合并 调用字典的 update 方法&#xff0c;合并 2 个字典。 3 、 json.l python 如…

HarmonyOS NEXT 体验调用云数据库更新排行榜单

一、介绍 基于鸿蒙Next模拟一个排行帮单二、场景需求 1.目标用户 社交平台用户&#xff0c;尤其是热衷于获取和分享信息的年轻人和用户群体。 2. 功能描述 用户可以通过“排行帮单”功能查看某个主题或领域的热门内容&#xff0c;并能够向朋友或群体推荐特定的项目。 3. 需求…

数据治理与标准推动数据成为“金矿”

方案介绍&#xff1a; 数据治理是一个涉及组织、政策、流程和技术的综合性框架&#xff0c;旨在确保数据的质量、安全性、可用性、合规性和一致性。它涵盖了从数据产生到销毁的全生命周期管理&#xff0c;确保数据在组织内部得到正确、高效地使用。而数据标准是数据治理的基石…

OPenCV结构分析与形状描述符(2)计算轮廓周长的函数arcLength()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算轮廓的周长或曲线的长度。 该函数计算曲线的长度或闭合轮廓的周长。 如果曲线是闭合的&#xff08;即首尾相连&#xff09;&#xff0c;则计…

CSS解析:层叠、优先级和继承

CSS虽说不是编程语言&#xff0c;但是日常使用中经常有很多误解&#xff0c;发现样式不奏效的情况&#xff0c;所以需要加强下CSS基础。 CSS本质上就是声明规则&#xff0c;即在各种条件下&#xff0c;我们希望产生特定的效果。 如果某个元素有这个类&#xff0c;则应用这些样…

英文翻译哪家强?2024年3款热门工具大比拼

现在世界变得越来越“小”&#xff0c;英语几乎成了大家都懂的语言。但对那些天天忙工作的小伙伴们来说&#xff0c;一大堆英文的东西&#xff0c;比如文件、邮件、会议记录&#xff0c;看着就头大。好在&#xff0c;科技帮了大忙&#xff0c;出了好多翻译工具。2024年&#xf…

php邮箱服务器怎么搭建?如何构建服务器?

php邮箱服务器配置教程指南&#xff1f;php邮件服务器如何搭建&#xff1f; 搭建一个稳定高效的php邮箱服务器&#xff0c;不仅可以提升邮件传输的效率&#xff0c;还能增强数据的安全性。那么&#xff0c;如何着手搭建这样一个服务器呢&#xff1f;AokSend将详细探讨php邮箱服…

使用YOLOv10训练自定义数据集之一(环境部署)

0x00 前言 由清华大学的研究团队基于 Ultralytics Python 包研发的 YOLOv10&#xff0c;通过优化模型结构并去除非极大值抑制&#xff08;NMS&#xff09;环节&#xff0c;提出了一种创新的实时目标检测技术。这些改进不仅实现了行业领先的检测性能&#xff0c;还降低了对计算…

网络编程----网络基础ip地址

一丶IP地址 1.基本概念 1. IP地址是Internet中主机的标识 2. Internet中的主机要与别的机器通信必须具有一个IP地址 3. IP地址为32位&#xff08;IPv4&#xff09;或者128位&#xff08;IPv6&#xff09; NAT&#xff1a;公网转私网、私网转公网 4. IPV4表示形式&…

【简历】25届上海某一本JAVA简历:第一次看学校背景写一页的

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份25 届上海某一本大学硕士的Java简历。这份简历写得比较偏&#xff0c;让人头疼。 这位同学的学校是重点一本&#xff0c;可以冲…