文档章节

shellsort

Nibnat
 Nibnat
发布于 2013/12/30 20:33
字数 218
阅读 6
收藏 0

基本思想和解释:

该函数包含了一个三重嵌套的for 循环语句,最外层的for语句控制两个比较元素之间的距离,从n/2开始直到距离为0结束。中间层的for循环语句用于在元素间移动位置,最内层的for语句用于比较各对相距gap个位置的元素。

#include<stdio.h>
#include<malloc.h>

void shellsort( int v[],int n )
{
	int gap , i , j , tmp;
	for( gap = n / 2 ; gap > 0 ; gap /= 2 )
	{
		for( i = gap ; i < n ; i++ )
		{
			for( j = i - gap ; j >= 0 && v[ j ] > v[ j + gap ] ; j -= gap )
			{
				tmp = v[ j ];
				v[ j ] = v[ j + gap ];
				v[ j + gap ] = tmp;
			}
		}
	}
}

int main(int argc,int *argv[])
{
	//int v[] = { 45,12,21,24,56,1,2,5,69,85,75 };
	//int n = sizeof( v )/sizeof( v[ 0 ] );
	int i = 0;
	int n = argc - 1;
	int * v;
	
	v = (int *)malloc( sizeof( int ) * n );
	
	for( i = 0 ; i < n ; i++ )
	{
		v[ i ] = atoi( (const char *)argv[ i + 1 ] );
	}
	
	shellsort( v , n );
	for( i = 0 ; i < n ; i++ )
		printf("%d ",v[ i ]);
		
	printf("\n");
	free( v );
	return 0;
}


© 著作权归作者所有

共有 人打赏支持
Nibnat
粉丝 0
博文 27
码字总数 10770
作品 0
湘潭
常用排序算法(二)

希尔排序 时间复杂度: 空间复杂度: method:将需要排序的的序列划分为若干个较小的序列,对这些序列进行直接插入排序. * 堆排序法 堆是一个完全二叉树,首先 1:将无序的数据构成堆,(既用无序...

eatnothing
2016/02/16
36
0
基本数据结构之Sort

问题描述: BubbleSort InsertionSort ShellSort MergeSort HeapSort QuickSort 问题分析: 时间复杂度? 空间复杂度? 代码实现: public class BubbleSort { public static <AnyType extends......

关西大汉弹琵琶
2015/10/25
148
0
6种排序算法比较 算法分析

@云中散人 你好,想跟你请教个问题: 源代码是你之前自己写的 十种排序算法比较 这个代码跟我的课程设计题目要求的简直就是一模一样 里面有些问题我不懂 想找你请教一下! 1.里面的希尔算法是...

aalll
2015/12/17
259
5
python 数据结构

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到...

hyhlinux
2016/12/04
26
0
算法分析(2)经典排序算法对比

[TOC] 概述 上一篇文章分析了一下基本的排序算法以及Java的实现,不过没有比较深入的去分析,因为对于O(n^2)的算法实现比较简单,但是对于O(nLogn)的算法本身有些复杂,所以就分为两篇文章来...

wustor
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

05-《深度拆解Java虚拟机》之JVM是如何执行方法调用的?(下)

一、问题引入 我们知道,设计模式大量使用了虚方法来实现多态。但是虚方法的性能效率并不高,所以作者就想在此基础上写篇文章,评估每一种设计模式因为虚方法调用而造成的性能开销,并且在文...

飞鱼说编程
8分钟前
0
0
nginx统一入口 多服务出口

nginx配置多ip和端口统一调用入口log_format中$upstream_addr 标识打印转发的url地址配置upstream和locationhttp {include mime.types;default_type application/octet-stream...

GoldenVein
9分钟前
0
0
阿里P9架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站无法正常访问的情况...

我是你大哥
11分钟前
0
0
华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!

还在感慨商品照片与实物存在差距,又要退货? 还在抱怨被忽视的图片小细节,影响了生活品质? 想要“买买买”, 又担心海量的商品图片耗光你的流量? 就在近期 搭载HiAI能力的苏宁易购新版上线...

华为终端开放实验室
13分钟前
0
0
聊聊redisson的RMap的computeIfAbsent操作

序 本文主要研究一下redisson的RMap的computeIfAbsent操作 实例 @Test public void testRMapComputeIfAbsent(){ Config config = new Config(); config.useSingleS......

go4it
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部