045.快速排序

简介: 045.快速排序
#include <stdio.h>
#define MAX 255
int R[MAX];
void ShellPass(int d, int n)
{/* 希尔排序中的一趟排序,d为当前增量 */
     int i,j;
     for(i=d+1;i<=n;i++) /* 将R[d+1..n]分别插入各组当前的有序区 */
       if(R[i]<R[i-d])
       {
         R[0]=R[i];j=i-d; /* R[0]只是暂存单元,不是哨兵 */
         do {/* 查找R[i]的插入位置 */
            R[j+d]=R[j];/* 后移记录 */
            j=j-d; /* 查找前一记录 */
         }while(j>0&&R[0]<R[j]);
         R[j+d]=R[0]; /* 插入R[i]到正确的位置上 */
       } /* endif */
   } /* end of ShellPass */
void  Shell_Sort(int n)
{
    int increment=n; /* 增量初值,不妨设n>0 */
    do {
          increment=increment/3+1; /* 求下一增量 */
    ShellPass(increment,n); /* 一趟增量为increment的Shell插入排序 */
       }while(increment>1);
} /* ShellSort */
void main()
{
  int i,n;
  clrscr();
  puts("Please input total element number of the sequence:");
  scanf("%d",&n);
  if(n<=0||n>MAX)
  {
    printf("n must more than 0 and less than %d.\n",MAX);
    exit(0);
  }
  puts("Please input the elements one by one:");
  for(i=1;i<=n;i++)
    scanf("%d",&R[i]);
  puts("The sequence you input is:");
  for(i=1;i<=n;i++)
    printf("%4d",R[i]);
  Shell_Sort(n);
  puts("\nThe sequence after shell_sort is:");
  for(i=1;i<=n;i++)
    printf("%4d",R[i]);
  puts("\n Press any key to quit...");
  getch();
}
相关文章
|
持续交付 项目管理 开发工具
【必备工具】gitee上传-保姆级教程
【必备工具】gitee上传-保姆级教程
C面试总结-指针与引用
C面试总结-指针与引用
57 0
|
7月前
|
算法 安全 数据安全/隐私保护
根据空域图信息构造飞机航线图以及飞行轨迹模拟matlab仿真
本程序基于MATLAB2022A实现空域图信息的飞机航线图构建与飞行轨迹模拟。空域图是航空领域的重要工具,包含航线、导航点、飞行高度层等信息。程序通过航路网络建模(节点为机场/导航点,边为航线段)构建航线图,并依据飞行规则规划航线。飞行轨迹模拟包括确定起飞点与目的地、设置航路点及飞行高度层,确保飞行安全。完整程序运行结果无水印,适用于航空飞行计划制定与研究。
154 16
|
9月前
|
弹性计算 运维 监控
云产品评测|阿里云服务诊断
云服务诊断是阿里云提供的运维工具,帮助用户快速定位和解决云资源问题。通过“健康状态”和“诊断”两大功能,用户可实时查看云资源状态,排查如网站无法访问、ECS故障、配置错误等常见问题,并根据修复建议迅速恢复业务。该工具显著提升了问题解决效率,降低了使用门槛。建议增加自定义告警、多维度数据展示、自动化修复等功能,进一步优化用户体验。
233 0
云产品评测|阿里云服务诊断
|
10月前
|
存储 人工智能 安全
云计算与网络安全:技术融合与挑战
在数字化时代的浪潮中,云计算和网络安全已成为推动社会进步的两大关键技术。本文将探讨云计算服务的发展,网络安全的重要性,以及信息安全技术的演进。我们将通过实例分析,揭示云服务如何增强数据保护,网络安全措施如何应对新兴威胁,以及信息安全技术的创新如何为企业带来竞争优势。文章旨在为读者提供对云计算和网络安全领域的深入理解,并展示它们如何共同塑造我们的未来。
|
存储 安全 大数据
对象存储的意义:探索数据新纪元的关键基石
在信息爆炸时代,数据成为核心资产,而高效安全的数据存储至关重要。对象存储作为一种新兴技术,起源于20世纪90年代,旨在解决传统文件系统的局限性。随着云计算和大数据技术的发展,它已成为关键技术之一。对象存储具备高可扩展性、高可靠性、低成本、易于管理和多协议支持等优点。它支撑大数据发展、推动云计算繁荣、助力企业数字化转型并保障数据安全。未来,对象存储将进一步提升性能,实现智能化管理,并与边缘计算融合,获得政策支持,成为数据新时代的关键基石。
421 3
|
12月前
|
SQL Oracle 关系型数据库
窗口函数(sample database classicmodels _No.8 )
本文介绍了SQL中的窗口函数,包括其概念、语法以及在实例中的应用。重点讲解了如何使用窗口函数进行聚合、排序和分析操作,特别提到了MySQL中常见的四个窗口函数:DENSE_RANK(),RANK(),ROW_NUMBER(),LAG()。
151 0
|
SQL Java 数据库连接
mybatis 中 foreach collection的常用用法
mybatis 中 foreach collection的常用用法
416 1
|
SEO
iframe标签是做什么用的
iframe标签是做什么用的
100 0
|
SQL 存储 Java
如何模拟MyBatis对象映射赋值的过程,以及如何通过这种方式来简化我们的JDBC开发工作?
如何模拟MyBatis对象映射赋值的过程,以及如何通过这种方式来简化我们的JDBC开发工作?
142 0