第16周项目1-验证算法(2)希尔排序

Ubuntu零基础入门到精通【4.4讲】:网络、蓝牙、显示器、声音与输入法设置! 🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。 阅读详情
 Copyright (c)2016,烟台大学计算机与控制工程学院  
* All rights reserved.  
* 文件名称:项目1-2.cbp  
* 作    者:王婧
* 完成日期:2016年12月15日  
* 版 本 号:v1.0  
  
* 问题描述:验证希尔排序 
  
* 输入描述:无  
* 程序输出:测试数据  

1.希尔排序

#include <stdio.h>  
#define MaxSize 20  
typedef int KeyType;    //定义关键字类型  
typedef char InfoType[10];  
typedef struct          //记录类型  
{  
    KeyType key;        //关键字项  
    InfoType data;      //其他数据项,类型为InfoType  
} RecType;              //排序的记录类型定义  
  
void ShellSort(RecType R[],int n)   //希尔排序算法  
{  
    int i,j,gap;  
    RecType tmp;  
    gap=n/2;                //增量置初值  
    while (gap>0)  
    {  
        for (i=gap; i<n; i++) //对所有相隔gap位置的所有元素组进行排序  
        {  
            tmp=R[i];  
            j=i-gap;  
            while (j>=0 && tmp.key<R[j].key)//对相隔gap位置的元素组进行排序  
            {  
                R[j+gap]=R[j];  
                j=j-gap;  
            }  
            R[j+gap]=tmp;  
            j=j-gap;  
        }  
        gap=gap/2;  //减小增量  
    }  
}  
  
int main()  
{  
    int i,n=11;  
    RecType R[MaxSize];  
    KeyType a[]= {16,25,12,30,47,11,23,36,9,18,31};  
    for (i=0; i<n; i++)  
        R[i].key=a[i];  
    printf("排序前:");  
    for (i=0; i<n; i++)  
        printf("%d ",R[i].key);  
    printf("\n");  
    ShellSort(R,n);  
    printf("排序后:");  
    for (i=0; i<n; i++)  
        printf("%d ",R[i].key);  
    printf("\n");  
    return 0;  
}  
运行结果:


2.排序中输出每一趟的中间结果

#include <stdio.h>  
#define MaxSize 20  
typedef int KeyType;    //定义关键字类型  
typedef char InfoType[10];  
typedef struct          //记录类型  
{  
    KeyType key;        //关键字项  
    InfoType data;      //其他数据项,类型为InfoType  
} RecType;              //排序的记录类型定义  
  
void ShellSort(RecType R[],int n)   //希尔排序算法  
{  
    int i,j,gap,k;  
    RecType tmp;  
    gap=n/2;                //增量置初值  
    while (gap>0)  
    {  
        for (i=gap; i<n; i++) //对所有相隔gap位置的所有元素组进行排序  
        {  
            tmp=R[i];  
            j=i-gap;  
            while (j>=0 && tmp.key<R[j].key)//对相隔gap位置的元素组进行排序  
            {  
                R[j+gap]=R[j];  
                j=j-gap;  
            }  
            R[j+gap]=tmp;  
            j=j-gap;  
        }  
        printf("gap=%d:",gap);  
        for (k=0; k<n; k++)  
            printf("%d ",R[k].key);  
        printf("\n");  
        gap=gap/2;  //减小增量  
    }  
}  
  
int main()  
{  
    int i,n=11;  
    RecType R[MaxSize];  
    KeyType a[]= {16,25,12,30,47,11,23,36,9,18,31};  
    for (i=0; i<n; i++)  
        R[i].key=a[i];  
    printf("排序前:");  
    for (i=0; i<n; i++)  
        printf("%d ",R[i].key);  
    printf("\n");  
    ShellSort(R,n);  
    printf("排序后:");  
    for (i=0; i<n; i++)  
        printf("%d ",R[i].key);  
    printf("\n");  
    return 0;  
}  


RT-DETR的AIF模块+YOLOv8:融合注意力与特征交互,打造实时检测的科研级进阶方案 从理解AIF模块“细粒度注意力+跨尺度交互”的核心设计,到亲手将其嵌入YOLOv8并验证在复杂场景的表现,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解“注意力机制与CNN融合”在实时检测中的核心价值。现在就开始行动,相信你会在实时目标检测的“智能进化”之路上,走出一条属于自己的技术路径。从实验对比图可见,集成AIF模块的YOLOv8,其mAP(平均精度)在多个阈值下均有提升,尤其是mAP50-95(高IoU阈值下的精度)提升更为显著,充分证明了AIF对细粒度特征的捕捉能力。 阅读详情

相关推荐

【STM32Cube HAL】输入捕获(六)——脉宽测量

1

HAHAHA 4908

第16周项目1-验证算法(2)希尔排序 显示过程

/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目1-2.cbp * 作 者:滕健 * 完成日期:2016年12月09日 * 问题描述: 验证希尔排序 * 输入描述:无 * 程序输出:测试数据 */ #include #define MaxSiz

滕健的博客 286

ITIL-IT运维管理-概述

ITIL-IT运维管理-概述 概述 IT服务管理(ITSM)是一套帮助企业对IT系统的规划、研发、实施和运营进行有效管理的方法,是一套方法论。ITSM起源于ITIL(IT Infrastructure Library,IT基础架构标准库),ITIL是CCTA(英国国家电脑局)于1980年开发的一套IT服务管理标准库。它把英国在IT管理方面的方法归纳起来,变成规范,为企业的IT部门提供一套从计划、研发、实施到运维的标准方法。 中文名 IT服务管理 外文名 ITService Management 专家

syjhct的博客 4万+

第16周项目1 验证算法(2)希尔排序

问题: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:321.cpp * 作 者:王靖淇 * 完成日期:2016年12月14日 * 版 本 号:v1.0 * 问题描述:验证希尔排序 * 输入描述:无 * 程序输出:测试数据 */ 代码: #include

sdwangjingqi的博客 726

MaPLe: Multi-modal Prompt Learning

具体而言,我们在语言分支中附加可学习的上下文标记,并通过耦合函数显式地将视觉 Prompt 置于语言 Prompt 上,以建立它们之间的交互。使用 Prompt 来适应CLIP (语言或视觉) 的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。由此,提出了一种分支感知的多模态 Prompt,通过在两种模态之间共享提示来协调 CLIP 的视觉和语言分支。在 Prompt Tuning 中,必须采取多模态方法获得同时适应 CLIP 的视觉和语言分支,以实现上下文优化的完整性。

weixin_48907099的博客 1053

番外篇 | 复现HIC-YOLOv5,助力小目标物体的检测

在本文中提出了一种改进的YOLOv5算法:HIC-YOLOv5,用于小目标检测,具有更好的性能和较低的计算成本。🌈

小哥谈 1130

第16周项目1 验证算法(2)希尔排序

问题: /* * Copyright (c)2015,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目1-2.cbp * 作 者:张芸嘉 * 完成日期:2015年12月16日 * 版 本 号:v1.0 * 问题描述:验证希尔排序 * 输入描述:无 * 程序输出:测试数据 */ 代码: #include #def

zyj854275509的博客 356

一个车载HUD的设计参考

一个车载HUD的设计参考

weixin_72050316的博客 799

第16周SHH数据结构-【项目1-验证算法(2)希尔排序】

/* * Copyright (c)2015,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目1-2.cbp * 作 者:孙浩瀚 * 完成日期:2015年12月18日 * 版 本 号:v1.0 * 问题描述:验证希尔排序 * 输入描述:无 * 程序输出:测试数据 */ 希尔排序: #include #define

孫浩瀚的博客 505

DISM进行系统修复,进度条卡在63.2%的解决方法

一时用不了软件,安装修复的时候也出现问题 DISM一直卡在63.2%,等了好久时间,直接强制退出寻找最终的解决方案

码农研究僧的博客 1万+

手把手教你学simulink(16.2)--基于Simulink的高通滤波器(High-Pass Filter)项目

基于Simulink的高通滤波器(High-Pass Filter)项目的详细实例介绍。这个项目将重点放在高通滤波器的设计、实现和仿真上,帮助你理解和应用高通滤波器在信号处理中的作用。

MHD0815的博客 926

第16周项目1-验证算法(2)

/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目1-2.cbp * 作 者:孟琪琪 * 完成日期:2016年12月15日 * 版 本 号:v1.0 * 问题描述:验证希尔排序、快速排序和堆排序 * 输入描述:无 * 程序输出:测试数据 */  

qq_36000007的博客 452

Unity之ASE如何实现UV扰动闪电效果

UV扰动,顾名思义,就是通过干扰原贴图的UV,使UV发生变化,导致贴图出现会动的效果,如果我们贴图和扰动的速度调整的刚好合适的话,会出现一些非常棒的效果,比如下图所示的闪电效果:好了,一个简单的UV扰动就讲完了,同学们可以发挥想象力,我们是否可以利用UV扰动的原理,做一点别的炫酷的效果出来,比如,交错流动,流光效果等等。很期待你的留言,这篇文章就到这里,希望对你有所帮助。

TxNet 1791

第十五周项目1-(3)-验证希尔排序算法

问题及代码: [cpp] view plain copy   /*     * Copyright (c)2016,烟台大学计算机与控制工程学院     * All rights reserved.     * 文件名称:ccc.cpp     * 作    者:陈晓琳  * 完成日期:2016年12月16日     * 版 本 号:v

cc1562cxl的博客 917

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

第16周项目1-插入排序之希尔排序(2)

/* * Copyright (c)2015,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目1-2.cbp * 作 者:李涵睿 * 完成日期:2015年12月18日 * 版 本 号:v1.0 * 问题描述:验证希尔排序 * 输入描述:无 * 程序输出:测试数据 */ #include #define MaxSize 20 typedef

mockingbommie的博客 419

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

第16周项目1——验证算法

问题及代码: /* *Copyright(c++)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:CPP1.cpp *作者:宋 晨 *完成日期:2015年12月14日 *版本号:v1.0 * *问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行

STRAWBERRYmonkey的博客 561

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

第16周、项目1—验证算法

问题及代码: /* *Copyright(c) 2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:test.cpp *作 者:焦梦真 *完成日期:2015年12月14日 *版 本 号;v1.0 * *问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试

MoCulison的博客 543

第十六周 项目1 验证算法 希尔排序 快速排序

问题描述: /* *Copyright(c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:111.cpp *作者:白晓娟 *完成日期:2016年12月15日 *版本:v1.0 * *问题描述:用序列{57, 40, 38, 11,

S1E2L3的博客 554

希尔排序算法原理、实现与优化实践

排序算法是计算机科学中的基础概念,通过特定规则将数据元素重新排列。希尔排序作为插入排序的改进版本,通过引入增量序列实现分组插入,先使数据宏观有序再逐步细化。这种分阶段处理使时间复杂度优化至O(n^1.5)级别,在中等规模数据处理中展现出独特优势。算法性能关键取决于增量序列选择,常见有Shell原始序列、Hibbard序列和Sedgewick序列等变体。工程实践中,希尔排序因其对缓存友好的特性和较少的内存访问,特别适合嵌入式系统和物联网设备等资源受限场景。结合插入排序的混合策略和并行化优化,能进一步提升其在J

weixin_30851867的博客 678

排序算法(四)希尔排序验证性实验

请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用希尔排序的方法对关键码数组进行排序,输出每轮比较的过程。 输入描述: 各个命令以及相关数据的输入格式如下: 第一行输入关键码的个数n 第二行输入n个整型关键码 输出描述: 输出关键码比较过程,每轮一行,关键码之间以空格隔开,最后一个关键码...

青衣煮茶 8865

16周 - 项目一-验证算法-直接插入排序

问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(1)直接插入排序;(2)希尔排序;(3)冒泡排序;(4)快速排序;(5)直接选择排序;(6)堆排序;(7)归并排序;(8)基数排序。 1.折半插入排序 #include #define

luguoca的博客 568

必须掌握的八种排序(1-2)--插入排序,希尔排序

很多人算法和数据结构不好,归根结底就是基础不扎实,算法和数据结构不好的话,达到的高度肯定不会很高,最近重新加强了一下自己的算法基础,决定从最基础的内容开始,如有不足的地方,欢迎指正。首先来看一下八种排序之间的关系图1、 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环

至道 2161
上一篇: 第16周项目1-验证算法(1)直接插入排
下一篇: 第16周项目1-验证算法(3)冒泡排序
Emerald Tablet123
博客等级 码龄10年 9粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值