希尔排序【模板】

简介:

希尔排序用了用了更少的时间编出来:

#include <iostream>

void Shellsort(int A[],int p,int r)
{
	int d=r-p+1;	//将 length(A) 赋给d

	int i,j,tmp;
	while(d>=1)
	{
		d/=2;
		for(i=p+d;i<=r;i++)
		{
			tmp=A[i];
			j=i-d;		//从i的前一个步长开始
			while(j>=p && tmp<A[j])
			{
				A[j+d]=A[j];	//记录后移
				j-=d;			//向前计数
			}

			A[j+d]=tmp;
		}
	}
}

int main()
{
	int A[6]={0,5,3,2,1,4};

	Shellsort(A,1,5);

	for(int i=1;i<=5;i++)
		printf("%d ",A[i]);

	return 0;
}

运行结果为:

1 2 3 4 5


相关文章
|
7月前
树状数组模板
树状数组模板
42 0
|
7月前
|
算法
桶排序(简化版)与冒泡排序
桶排序(简化版)与冒泡排序
38 0
|
5月前
|
算法
二分 模板
二分的另一个板子
36 1
|
6月前
|
Java Python
二分查找模板
二分查找模板
|
6月前
|
算法 搜索推荐 C++
【洛谷 P1177】【模板】快速排序 题解(快速排序+数组索引)
**快速排序模板题目**,要求使用快排算法对输入的整数序列进行排序。输入包含正整数N和N个整数,输出排序后的序列。20%的数据N≤10^3,所有数据N≤10^5。代码中提供了一种实现,包括读取输入、定义partition函数划分数组、递归调用quickSort及主函数执行排序和输出。注意C++选手避免使用STL的`sort`。
29 0
|
7月前
|
Python
{二分模板}
{二分模板}
26 0
|
7月前
|
搜索推荐 Java 索引
快速排序的新用法
快速排序的新用法
48 0
|
7月前
|
搜索推荐 算法
常见排序算法以及冒泡排序的基础使用方法
常见排序算法以及冒泡排序的基础使用方法
43 0
|
机器学习/深度学习
P1873 砍树(二分查找模板)
P1873 砍树(二分查找模板)
129 0
|
机器学习/深度学习 人工智能 搜索推荐
P1177 【模板】快速排序(二分排序)
P1177 【模板】快速排序(二分排序)
81 0