数据结构--------------静态表的希尔排序

#define LT(a,b) ((a)< (b))
#define EQ(a,b) ((a)==(b))
#define LQ(a,b) ((a)<=(b))

typedef struct ElemType
{//表中元素结构
 int key;
 char name[20];
}ElemType;

typedef struct SSTable
{//静态表结构
 ElemType *elem;
 int length;
}SSTable;


ElemType r[20];//全局变量,用于传值给表元素

void Create_SqTable(SSTable &T,int n)
{//创建顺序表
 T.elem=new ElemType [n];
 for(int i=1;i<=n;i++)//静态表第一个元素不用
  T.elem[i]=r[i-1];
 T.length=n;
}

void InPut(SSTable &T)
{//顺序表的录入
 char c='#';
 static int n=0;
 while(c!='!')
 {
 cout<<"元素关键字:";
 cin>>r[n].key;
 cout<<"元素名字:";
 cin>>r[n].name;
 n++;
 c=getchar();
 }
 Create_SqTable(T,n);
}

//思想:
//先将整个序列分成若干个子序列,再对子序列进行直接插入排序
//待到子序列基本有序,则对全体记录进行一次直拉插入排序
void ShellInsert(SSTable &L,int dk)
{//dk是前后记录的增量
 int j;
 for(int i=dk+1;i<=L.length;++i)
  if(LT(L.elem[i].key,L.elem[i-dk].key))
  {
   L.elem[0]=L.elem[i];
   for(j=i-dk;j>0&&LT(L.elem[0].key,L.elem[j].key);j-=dk)
    L.elem[j+dk]=L.elem[j];
   L.elem[j+dk]=L.elem[0];
  }
}

void ShellSort(SSTable &L,int dlta[],int t)
{//对t个记录进行希排序
 for(int k=0;k<t;k++)
  ShellInsert(L,dlta[k]);
}


void Print(SSTable L)
{
 for(int i=1;i<=L.length;i++)
  cout<<L.elem[i].key<<" "<<L.elem[i].name<<endl;
}

转载于:https://www.cnblogs.com/zhangjunjie/p/3368241.html

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

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

相关文章

智能集群理论优化控制_数学学科学术报告九:机器人集群的智能协同控制方法_中国计量大学...

数学学科学术报告九&#xff1a;机器人集群的智能协同控制方法_中国计量大学中国计量大学 免费考研网/2018-05-17报告题目&#xff1a;机器人集群的智能协同控制方法报告人&#xff1a;孙长银(东南大学 教授)报告时间&#xff1a;2018.04.09 15:30-16:30报告地点&#xff1a;格…

css复选框如何调大一些,创建CSS放大复选框

您可以随时使用复选框来勾选自己的复选框.这允许更多的跨浏览器兼容的解决方案.我做了一个快速演示here,显然你必须得到一个透明的.png的滴答,而不是我得到的.input[typecheckBox]:checked ~ div label{background: url(http://ramyasspace.files.wordpress.com/2011/06/tick.j…

outside of class is not definition

有一种可能的情况&#xff1a;You have semicolons (;) at the end of all your function definitions making the compiler think theyre declarations. 即在方法定义的后面都误添加上了";",导致编译器认为这仅仅是个声明。

Makefile中=、:=、+=、?=的区别

&#xff0c;就是基本的赋值 :&#xff0c;覆盖原来的值 &#xff0c;添加新值 ?&#xff0c;如果没有赋值则赋值转载于:https://www.cnblogs.com/wangluojisuan/p/3369072.html

用python画面积图_Python笔记:用matplotlib绘制面积图

用pyecharts绘制出来的面积图、圆环图太有个性了&#xff0c;未免感觉有点“高处不胜寒”。今晚虽然休息&#xff0c;但继用matplotlib绘制折线图之后&#xff0c;我又心血来潮地想用matplotlib来制作一点面积图&#xff0c;因为这在零售行业也是常用的可视化图形之一。具体如下…

状态机思路在程序设计中的应用

状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中&#xff0c;必然有状态机的身影浮现。 比如说一个按键命令解析程序&#xff0c;就可以被看做状态机&#xff1a;本来…

css 实现标签切换,CSS_纯CSS实现Tab切换标签效果代码,本文实例讲述了纯CSS实现Tab切 - phpStudy...

纯CSS实现Tab切换标签效果代码本文实例讲述了纯CSS实现Tab切换标签效果代码。分享给大家供大家参考。具体如下&#xff1a;这是一款纯CSS实现的Tab简洁版&#xff0c;很不错的效果&#xff0c;希望大家喜欢。运行效果截图如下&#xff1a;在线演示地址如下&#xff1a;http://d…

IBM T410 打开AHCI模式

笔记本初始安装WINDOWS 7时&#xff0c;BIOS中SATA硬盘被设置为兼容模式&#xff0c;更高性能的ahci模式无法使用&#xff0c;表现为启动蓝屏。解决方法如下&#xff1a; 1&#xff09; 如果无法正常启动&#xff0c;先将BIOS中SATA硬盘改回为兼容模式启动windows 7。具体是在…

卷积核_漫画:卷积神经网络中的卷积核到底是什么?

卷积计算的直观体现如上所示&#xff0c;一张汽车图片经过了多次卷积操作&#xff0c;一开始卷积在提取低层次的特征(检测边缘)&#xff0c;然后逐渐提取高层次的特征(完整的物体)不同的卷积探测器我们可以看到同一张图片经过不同的卷积核&#xff0c;得到的结果是不一样的&…

bbb sdk6编译流程

1. 编译用于ftp启动的镜像 1) uboot make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- Oflash-restore am335x_evm_restore_flash_usbspl 生成的u-boot.img在flash-restore目录下&#xff0c;拷贝到ftp目录下&#xff0c;并改名为u-boot-restore.img 生成的u-boot-spl.bin…

UVa 297 - Quadtrees

题目&#xff1a;利用四叉树处理图片&#xff0c;给你两张黑白图片的四叉树&#xff0c;问两张图片叠加后黑色的面积。 分析&#xff1a;搜索、数据结构。把图片分成1024块1*1的小正方形&#xff0c;建立一位数组记录对应小正方形的颜色。 利用递归根据字符串&#xff0c;建立相…

如何打开win7禁用的无线网卡服务器,Windows7如何使用批处理开启/禁用无线网卡...

对于无线网卡&#xff0c;Win7笔记本用户应该都不会陌生&#xff0c;许多笔记本用户都是在自己的电脑上安装了无线网卡之后&#xff0c;使用无线网络进行联网的&#xff0c;不过对于一些有线用户来说&#xff0c;无线网卡就显得并不太重要了。因此&#xff0c;今天小编就教大家…

超声声场模拟_超声全聚焦(TFM)简介

应读者要求&#xff0c;小编将介绍一下全聚焦TFM的基础知识。如有讲解不对的&#xff0c;欢迎批评指正。全聚焦是超声检测里面的新事物。早在2005前&#xff0c; Caroline Holmes、Paul D. Wilcox等国外学者就开始研究了全聚焦成像&#xff0c;并通过实验得出了TFM相对于常规相…

bbb sd6 无e2 修改

1. u-boot修改 board/ti/am335x/board.c void s_init(void)和static int read_eeprom(void)这两个函数要从e2中读取数据&#xff0c;只需要把原版的bbb的e2中的数据读出来并添充到相应的数据结构里即可。 最终是要填充这个结构体 struct am335x_baseboard_id { unsigned int m…

session会话拦截ajax,session过期,拦截ajax请求并跳转登录页面

1.方法一 &#xff1a;1.1使用filter 和ajaxsetup 对ajax进行拦截并跳转登录页面public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletResponse hresponse (HttpServletResponse)re…

ubuntu下修改mysql编码,使能支持中文

通过sudo apt-get install mysql-server安装的mysql的编码是latin1&#xff0c;不能支持中文。 需要修改/etc/mysql/my.cnf文件&#xff0c;可以通过vim或者gedit进入&#xff0c; 找到[client] 添加:default-character-setutf8 //默认字符集为utf8 找到[mysqld]添加: default-…

php二维码存放json数据_PHP生成及获取JSON文件的方法

本文实例讲述了PHP生成及获取JSON文件的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;首先定义一个数组&#xff0c;然后遍历数据表&#xff0c;把相应的数据放到数组中&#xff0c;最后通过json_encode()转化数组json_encode() 函数的功能是将数值转换成 JSON …

gsoap的几个常用设置选项

1. 服务器端设置地址重用 在soapXXXService.cpp中&#xff0c;在类的构造函数中增加 bind_flags SO_REUSEADDR; 2. 客户端设置连接超时时间 在soapXXXProxy.cpp中&#xff0c;在XXXProxy_init中增加 connect_timeout x; 3. 客户端设置请求超时时间 在soapXXXProxy.cpp中&…

post修改服务器数据源,postgresql安装及配置超详细教程

1. 安装根据业务需求选择版本&#xff0c;官网下载初始化数据库执行完初始化任务之后&#xff0c;postgresql 会自动创建和生成两个用户和一个数据库&#xff1a;linux 系统用户 postgres&#xff1a;管理数据库的系统用户&#xff1b;密码由于是默认生成的&#xff0c;需要在系…

小程序分享到朋友圈_如何给小程序添加分享朋友圈

微信公众号更新以后&#xff0c;推送不是按照优先来的&#xff0c;你们可以把我的微信公众号点击设置为星标&#xff0c;以便于及时的接收信息.从微信小程序官方分享朋友圈有那么几天了,今天就分享下如何给自己的小程序添加分享朋友圈代码,几行代码的事。根据官方的提示需要基础…