栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

53-八大排序之——②希尔排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

53-八大排序之——②希尔排序

希尔排序 1.算法描述:希尔排序是间隔式的分组(5,3,1),利用直接插入排序排序,通过缩小分组,再排序…直到缩为1组,完全有序为止 2.一趟希尔排序,gap为组数(间隔),分为5组,间隔数就是5,分为3组,间隔数就是3 3.直接插入排序越有序越快是希尔排序的一个理论基础 4.时间复杂度O(n^1.3 ~ n^1.5),空间复杂度O(1),不稳定(有跳跃式的交换,所以不稳定)
static void Shell(int *arr,int len,int gap)
{
	int tmp;
	int j;
	for(int i = gap;i=0;j-=gap)//j是同组序列最后一个下标
		{
			if(arr[j]>tmp)//交换
			{
				arr[j+gap] = arr[j];
				arr[j] = tmp;
			}
			else
			{
				break;
			}
		}
	arr[j+gap] = tmp;
	}
}

void ShellSort(int *arr,int len)
{
	int d[] = {5,3,1};
	for(int i = 0;i 
希尔排序 测试: 
	//希尔排序测试:
	//int arr[] = {3,-4,6,7,90};
	int arr[] = {20,33,21,54,17,16,30,18,19,22,7,10,29,26,11};
	ShellSort(arr,sizeof(arr)/sizeof(arr[0]));
	Show(arr,sizeof(arr)/sizeof(arr[0]));
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号