C语言——希尔排序

希尔排序是对于插入排序的一种优化

代码:

#include <stdio.h>
#include <stdlib.h>
void shell_sort(int* p, int len)
{
    int i;
    int j;
    int step;
    int tmp;
    for (step = len / 2; step > 0; step = step / 2)
    {
        for (i = step; i < len; ++i)
        {
            if (p[i] < p[i - step])
            {
                tmp = p[i];
                for (j = i - step; j >= 0 && tmp < p[j]; j = j - step)
                {
                    p[j + step] = p[j];
                }
                p[j+step] = tmp;
            }
        }
    }
    for (i = 0; i < len; i++)
    {
        printf("%d ", p[i]);
    }
}
int main()
{
    int len;
    scanf_s("%d", &len);
    int *p = (int *)malloc(sizeof(int) * len);
    if (p == NULL)
    {
        return 1;
    }
    else
    {
        for (int i = 0; i < len; i++)
        {
            scanf_s("%d", p + i);
        }
        shell_sort(p, len);
    }
    free(p);
    return 0;

}       

结果

                                                                                                                                                                                                                                                                                                                                    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb【day14】--(SpingBoot原理)

SpingBoot原理 在前面十多天的课程当中&#xff0c;我们学习的都是web开发的技术使用&#xff0c;都是面向应用层面的&#xff0c;我们学会了怎么样去用。而我们今天所要学习的是web后端开发的最后一个篇章springboot原理篇&#xff0c;主要偏向于底层原理。 我们今天的课程安…

【达梦数据库】误删数据库目录问题复现解决方式

目录 1、环境搭建1.1、查询数据库版本1.2、创建表1.3、插入数据1.4、查询数据 2、故障重演2.1、服务器内直接删除整个库文件2.2、查询数据&#xff1a;数据可查2.3、查看进程&#xff1a;进程存在2.4、查看proc进程文件&#xff1a;deleted 3、数据恢复3.1、逻辑导出导入-(数据…

算法练习题17——leetcode54螺旋矩阵

题目描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 代码 import java.util.*;class Solution {public List<Integer> spiralOrder(int[][] matrix) {// 用于存储螺旋顺序遍历的结果List<Integer>…

【数据结构-二维前缀和】力扣221. 最大正方形

在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内&#xff0c;找到只包含 ‘1’ 的最大正方形&#xff0c;并返回其面积。 示例 1&#xff1a; 输入&#xff1a;matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”…

【Qt 即时通讯项目】登录验证码是如何做到的呢

文章目录 1. 登录注册功能验证码实现2. 验证码生成的流程3. 细节部分 1. 登录注册功能验证码实现 &#x1f427;①目的&#xff1a;引入验证码&#xff0c;目的是用来避免程序被其它程序暴力破解的方式找到密码。 2. 验证码生成的流程 ①&#x1f34e;首先通过Qt的QRandomGen…

智能优化算法-樽海鞘优化算法(SSA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 樽海鞘优化算法 (Salp Swarm Algorithm, SSA) 虽然名称中提到的是“樽海鞘”&#xff0c;但实际上这个算法是基于群体智能的一种元启发式优化算法&#xff0c;它模拟了樽海鞘&#xff08;Salps&#xff09;在海…

SOLIDWORKS Electrical用户权限管理

SOLIDWORKS Electrical 可以自定义用户权限管理&#xff0c;用户权限设置可设置不同的用户(工程师)针对其在软件中查看和修改的内容。如&#xff1a;A用户的权限只能查看预览某些项目文件无法修改内容&#xff0c;B用户可以查看某个文件夹的内容并可以更改;都可以通过用户权限来…

西门子博途零基础学PLC必会的100个指令

#西门子##PLC##自动化##工业自动化##编程##电工##西门子PLC##工业##制造业##数字化##电气##工程师# 工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

第三部分:3---环境变量

目录 什么是环境变量&#xff1f; PATH环境变量&#xff1a; 临时修改环境变量PATH&#xff1a; HOME环境变量&#xff1a; 可能使用环境变量的场景&#xff1a; 进程和环境变量的关系&#xff1a; 环境变量相关操作&#xff1a; 代码获取环境变量&#xff1a; 主函数传…

C# WPF燃气报警器记录读取串口工具

C# WPF燃气报警器记录读取串口工具 概要串口帧数据布局文件代码文件运行效果源码下载 概要 符合国标文件《GB15322.2-2019.pdf》串口通信协议定义&#xff1b;可读取燃气报警器家用版设备历史记录信息等信息&#xff1b; 串口帧数据 串口通信如何确定一帧数据接收完成是个…

第二证券:科创板股票交易规则,科创板新手可以买吗?

科创板是独立于现有主板商场的特别板块&#xff0c;面向的是国际科技前沿、经济主战场、国家严峻需求&#xff0c;首要服务于契合国家战略、打破要害核心技术、商场认可度高的科技立异企业。 科创板是独立于现有主板商场的特别板块&#xff0c;面向的是国际科技前沿、经济主战…

Windows安装anaconda注意事项及jupyter notebook更换目录

anaconda的介绍就不罗嗦了&#xff0c;既然准备安装了&#xff0c;说明你已经有所了解了。直入主题&#xff0c;Anaconda官网下载&#xff0c;实在太慢&#xff0c;可到https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载&#xff0c;注意&#xff0c;这是清华镜像站…

MySQL基础(8)- 单行函数(2)

目录 一、流程控制函数 1.IF(VALUE,VALUE1,VALUE2) 2.IFNULL(VALUE1,VALUE2) 3.CASE WHEN ... THEN ...WHEN ... THEN ... ELSE ... END 4.CASE ... WHEN ... THEN ... WHEN ... THEN ... ELSE ... END 二、加密与解密的函数 三、MySQL信息函数 四、其他函数 一、流程控…

MySQL之DQL-分组函数

1、分组函数 1. 分组函数语法 分组函数也叫聚合函数。是对表中一组记录进行操作&#xff0c;每组只返回一个结果。我们只讲如下5个常用的分组函数&#xff1a; 分组函数 含义 MAX 求最大值 MIN 求最小值 SUM 求和 AVG 求平均值 COUNT 求个数 分组函数的语法如下…

并发编程:AQS(上)

一、AQS 是什么&#xff1f; AQS 的全称为 AbstractQueuedSynchronizer &#xff0c;翻译过来的意思就是抽象队列同步器。这个类在 java.util.concurrent.locks 包下面。 AQS 就是一个抽象类&#xff0c;主要用来构建锁和同步器。 public abstract class AbstractQueuedSynch…

“健康中国 医路无忧——公益联盟”积极响应,国内首支公益陪诊师志愿队伍正式成立

在快节奏的现代生活中&#xff0c;就医不再是简单的“看病”那么简单。面对复杂的医疗流程、专业的医学术语、以及在陌生环境中的焦虑&#xff0c;患者及家属往往感到无所适从。此时&#xff0c;陪诊服务如同一束光&#xff0c;照亮了就医之路&#xff0c;它的重要性不仅体现在…

Visual Studio汇编代码高亮与自动补全

高亮插件&#xff1a;AsmDude (可以按照我的颜色进行设置&#xff0c;或者你自己改) 代码自动补全&#xff1a;CodeGeex (功能很多&#xff0c;支持的语言很多)&#xff0c;按Tab补全

骨传导耳机哪个品牌好用?精选五大高能骨传导耳机分享!

随着科技的进步和人们对健康生活的追求&#xff0c;骨传导耳机凭借其独特的设计理念和使用体验&#xff0c;迅速在运动爱好者和日常通勤族中流行起来。与传统耳机相比&#xff0c;骨传导耳机不仅能够提供清晰的音质&#xff0c;还能确保佩戴者在享受音乐的同时保持对外界环境的…

关于腾讯IM消息ID不统一的问题?服务端的MsgKey和前端的msgID不一样

角色>前端&#xff1a;web、小程序、客户端&#xff08;ios、安卓&#xff09;&#xff1b;服务端&#xff1b;腾讯IM&#xff1b; 1、背景 IM消息ID不一致&#xff0c;本地没有缓存历史数据&#xff0c;导致在调用腾讯sdk方法时&#xff0c;id不一致报错问题 2、调研目的…

HTML 揭秘:HTML 编码快速入门

HTML 揭秘&#xff1a;HTML 编码快速入门 一 . 前端知识介绍二 . HTML 介绍三 . HTML 快速入门四 . HTML 编辑器 - VSCode4.1 插件安装4.2 修改主题配色4.3 修改快捷键4.4 设置自动保存4.5 创建 HTML 文件4.5 书写 HTML 代码4.6 常见快捷键 五 . 基础标签5.1 字体标签5.1.1 col…