043.希尔排序

简介: 043.希尔排序
#include <stdio.h>
#define MAX 255
int R[MAX];
void Bubble_Sort(int n)
{ /* R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序 */
     int i,j;
     int exchange; /* 交换标志 */
     for(i=1;i<n;i++){ /* 最多做n-1趟排序 */
       exchange=0; /* 本趟排序开始前,交换标志应为假 */
       for(j=n-1;j>=i;j--) /* 对当前无序区R[i..n]自下向上扫描 */
        if(R[j+1]<R[j]){/* 交换记录 */
          R[0]=R[j+1]; /* R[0]不是哨兵,仅做暂存单元 */
          R[j+1]=R[j];
          R[j]=R[0];
          exchange=1; /* 发生了交换,故将交换标志置为真 */
         }
       if(!exchange) /* 本趟排序未发生交换,提前终止算法 */
       return;
     }
}
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]);
  Bubble_Sort(n);
  puts("\nThe sequence after bubble_sort is:");
  for(i=1;i<=n;i++)
    printf("%4d",R[i]);
  puts("\n Press any key to quit...");
  getchar();
  getchar();
}
相关文章
Failed to execute script ‘xxx‘ due to unhandled exception:No module named ‘ctypes‘
Failed to execute script ‘xxx‘ due to unhandled exception:No module named ‘ctypes‘
633 0
|
存储 安全 网络安全
网络安全与信息安全:防御前线的科学与策略
【4月更文挑战第10天】 在数字化时代,数据成为了新的货币,信息流成了掌控权的象征。然而,随着信息技术的迅猛发展,网络安全漏洞、加密技术以及用户的安全意识构成了维护网络空间安全的三大支柱。本文将深入探讨网络安全中存在的风险点,分析加密技术的演进及其在保护数据完整性、机密性方面的重要性,并强调提升个人和组织的安全意识的必要性。通过科学的分析与策略的制定,我们旨在为读者提供一幅全面的网络安全蓝图,以应对日益繁复的网络威胁。
|
缓存 负载均衡 测试技术
企业系统工程(Enterprise Systems Engineering, ESE)是一个跨学科的领域,它应用系统工程的原则和方法来规划、设计、实施和管理复杂的组织系统,特别是那些涉及信息技术(IT)和商业流程的系统。
企业系统工程(Enterprise Systems Engineering, ESE)是一个跨学科的领域,它应用系统工程的原则和方法来规划、设计、实施和管理复杂的组织系统,特别是那些涉及信息技术(IT)和商业流程的系统。
|
存储 SQL 关系型数据库
MySQL中的update操作与锁机制
本文探讨MySQL中`UPDATE`操作的自动加锁机制及其对数据一致性的保障作用。尤其在InnoDB存储引擎下,系统会在涉及索引的更新操作中加行锁或间隙锁,防止多事务并发修改同一条记录。通过福利码兑换系统的实例展示,当线程A开启事务更新库存时,线程B试图更新相同记录会被阻塞,直至线程A提交。此外,文章还介绍了乐观锁及版本号控制等策略进一步提升并发性能的方法。作者:小明爱吃火锅,来源:稀土掘金。
654 2
|
Rust 前端开发 JavaScript
Tauri框架:使用Rust构建轻量级桌面应用
Tauri是一个用Rust构建的开源框架,用于创建轻量、安全且高效的跨平台桌面应用,结合Rust与Web技术(HTML/CSS/JS)。它遵循最小权限原则,仅在必要时调用OS API。Tauri架构包括Rust后端、Web前端、Tauri API和包装器。通过`cargo tauri init`可创建新项目,Rust后端处理系统交互,前端负责UI,两者通过Tauri API通信。Tauri支持自定义API、集成前端框架、资源管理、自动更新、系统集成和安全配置。此外,Tauri拥有插件系统和丰富的扩展能力,提供调试和测试工具,并有性能优化建议。
873 4
|
Linux 应用服务中间件 Shell
在CentOS 7上安装和使用Docker Compose的方法
在CentOS 7上安装和使用Docker Compose的方法
1173 0
|
JavaScript
Vue的非父子组件之间传值
全局事件总线 一种组件间通信的方式,适用于任意组件间通信
190 0
|
存储 监控 数据安全/隐私保护
使用COBOL编写传统的公司电脑监控软件
本文介绍了如何使用COBOL编写一款简单的公司电脑监控软件,该软件能够监控并记录员工活动,数据自动提交至网站。COBOL程序包含标识部、环境部、数据部和过程部。示例代码展示了数据结构,如员工的登录和活动时间,并定义了监控和数据存储过程。最后,通过HTTP POST请求将数据提交到指定网站。虽然COBOL古老,但在传统系统中仍占有一席之地,此类解决方案有助于维护企业系统和保障数据安全。
220 3
[simulink] --- simulink中stateflow的使用
[simulink] --- simulink中stateflow的使用
1249 0
|
监控 安全 Java
《SpringBoot启动流程三》:两万+字图文带你debug源码分析SpringApplication准备阶段(含配置文件加载时机、日志系统初始化时机)
《SpringBoot启动流程三》:两万+字图文带你debug源码分析SpringApplication准备阶段(含配置文件加载时机、日志系统初始化时机)
547 0
《SpringBoot启动流程三》:两万+字图文带你debug源码分析SpringApplication准备阶段(含配置文件加载时机、日志系统初始化时机)