文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

DRDS SQL 审计与分析——全面洞察 SQL 之利器

摘要: 背景 数据库存储着系统的核心数据,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。而在云端,数据库所面临的威胁被进一步的放大。因此,对云数据库的操作行为尤其是全...

阿里云官方博客
14分钟前
1
0
大数据就业前景分析的太到位了,想学习大数据的可以看看

大数据广泛应用于电网运行、经营管理及优质服务等各大领域,并正在改变着各行各业,也引领了大数据人才的变革。大数据专业就业前景怎么样?这对于在就业迷途中的我们是一个很重要的信息。 随...

董黎明
21分钟前
0
0
如何利用Photoshop进行快速切图

在UI设计中我们常常使用Ai来进行矢量图的绘制,然后导入Ps中进行设计、排版和导出。 在以前的版本中,切图一直是个很麻烦的事情,要么依托于脚本,要么手动一张张导出,很不方便,这种窘况在...

mo311
28分钟前
0
0
配置防盗链、访问控制Directory、访问控制FilesMatch

11月19日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 通过限制referer来实现防盗链的功能 配置文件增加如下内容 <Directory /data/wwwroot/www.123.com> SetE...

zgxlinux
36分钟前
2
0
docker搭建redis环境

docker 搭建redis单机,主从,哨兵,集群环境: https://github.com/grace-233/docker-config-file/tree/master/redis...

grace_233
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部