Shell排序——软考(五)
希尔排序是一种插入排序,是对直接插入排序的一种改进,该算法出自于D.L.Shell,因此得名为希尔。Shell排序又名缩小增量排序。
思想
例子
void shellsort(int number[]) {
    int i, j, k, d, t;   
    d = Len / 2;   
    while(d > 0) {
        for(k = 0; k < d; k++) {
            for(i = k+d; i < Len; i+=gap) {
                for(j = i - d; j >= k; j-=d) {
                    if(number[j] > number[j+d]) {
                        t = number[j];
                        number[j]=number[j+d];
                        number[j+d]=t;
                    }
                    else
                        break;
                }
            }
        }
    }
分析
Shell排序——软考(五)的更多相关文章
- 直接插入排序、折半插入排序、Shell排序、冒泡排序,选择排序
		
一.直接插入排序 稳定,时间复杂度:最好O(n).最差O(n^2).平均O(n^2).空间复杂度O(1) void InsertSort(int L[], int n) { int i, j,key; ...
 - 软考类----编码、ASII码等
		
淘米2014实习生笔试,今年是淘米第一年招暑期实习生,笔试好大部分考的是软考的题目啊啊啊啊(劳资后悔当年没考软考刷加权),其他是浅而泛的风格,C++,SQL语句,数据结构(哈夫曼树,二叉查找树,栈后缀 ...
 - 软考论文的六大应对策略V1.0
		
软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路 ...
 - 数据结构与算法之--高级排序:shell排序和快速排序
		
高级排序比简单排序要快的多,简单排序的时间复杂度是O(N^2),希尔(shell)排序大约是O(N*(logN)^2),而快速排序是O(N*logN). 说明:下面以int数组的从小到大排序为例. 希 ...
 - 软考-系统开发与软件project
		
关于软件project方面的知识,相信大家都不陌生,软考中这部分知识也是重点考察范围,关于软件project的知识点很的琐碎.我把这部分的知识点分成了五部分,各自是软件project的基础知识.开发管 ...
 - 软考网络工程师、软件设计师等官方指定教材pdf文件
		
软考计算机网络工程师教材pdf 链接:https://pan.baidu.com/s/1-UXeNye414UWYxYRC6bHuA 提取码:5z9w 软考计算机软件设计师第五版pdf 链接:http ...
 - 基本排序算法——shell排序java实现
		
shell排序是对插入排序的一种改进. package basic.sort; import java.util.Arrays; import java.util.Random; public cla ...
 - 软考之PV操作(同步)
		
这几天,陆续有那么三两个同学跟我讨论了一下关于软考上的PV操作的题,吾虽不才,但还是把同学们讲通了,在此,特分享一下自己的思路和想法,愿对大家有点帮助! 下面,我们就通过自己做过的试卷上两道题来分析: ...
 - 插入排序与shell排序(希尔排序)
		
1 .插入排序的过程如同我们平时打扑克牌取牌插入的过程,不断将取出的扑克牌插入已经排好的地方. 插入排序过程初始有序区间大小为1,取出无序区间的首元素,查找有序区间的合适位置,进行插入.不断重复上述过 ...
 
随机推荐
- ThreadPool.QueueUserWorkItem 简单示例,显示当前时间
			
1.线程池 添加方法 作为一个线程运行 class Program { static void Main(string[] args) { ThreadPool.QueueUserWorkItem( ...
 - docker笔记2--镜像容器基本使用
			
1 docker的安装 系统:centos7 (1)配置好yum (2)yum -y install docker (3)查看状态 systemctl status docker 2 docker镜像 ...
 - openstack 权限控制  (添加自定义角色)keystone等组件
			
每一个平台.系统都会对于用户的权限进行严格的管理与控制. openstack是一个开源的项目,我们可以直接下载其源码,进行更改以达到我们的要求. 这里只是针对于用户的权限进行管理,以keystone: ...
 - javascript高德地图实现点击marker消失marker
			
javascript高德地图实现点击marker消失marker <pre> var markers = []; var positions = [[120.17718, 30.21772 ...
 - 13 JSP、MVC开发模式、EL表达式和JSPL标签+软件设计架构---学习笔记
			
1.JSP (1)JSP概念:Java Server Pages 即java服务器端页面可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码用于简化书写!!! (2)原理 ...
 - python 之   Django框架(Django框架简介、视图装饰器、request对象、Response对象)
			
12.33 Django框架简介: MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器( ...
 - SQL学习-SQL Server
			
 - Go语言( 流程控制)
			
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结 ...
 - 【C#】上机实验七
			
.开发一个窗体应用程序,窗体上能接收华氏温度或者摄氏温度,点击相应按钮可以相互转换. 要求转换后的华氏温度或者摄氏温度保留小数点后3位,程序中要有异常处理结构. using System; using ...
 - warning: LF will be replaced by CRLF in application.yml. The file will have its origina解决方法
			
环境: windows提交时报错如图所示: 原因是存在符号转义问题 windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法: git con ...