C语言实现希尔排序

c 复制代码
void ShellSort(int arr[], int n) {//希尔排序--升序
	int i = 0;
	int j = 0;
	int d = n / 2;
	for (d = n / 2;d >= 1;d /= 2) {
		for (i = d;i < n;i++) {
			int tmp = arr[i];
			for (j = i;j >= 0;j -= d) {
				if (tmp < arr[j - d]) {
					arr[j] = arr[j - d];
				}
				else {
					arr[j] = tmp;
					break;
				}
			}
		}
	}
}

int main() {
	int arr[10] = { 3,5,2,9,1,4,8,6,10,7 };
	int n = 10;
	ShellSort(arr, 10);
	for (int i = 0;i < 10;i++) {
		printf("%d ", arr[i]);
	}
	return 0;
}
相关推荐
hope_wisdom8 分钟前
C/C++数据结构之二叉树基础
c语言·数据结构·c++·二叉树
磊 子8 分钟前
STL算法库讲解1
开发语言·c++·算法
8Qi89 分钟前
LeetCode 474:一和零(Ones and Zeroes)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
stolentime15 分钟前
CF2066D2 Club of Young Aircraft Builders (hard version)题解
c++·算法·动态规划·组合数学
Chen_harmony17 分钟前
二十五、预处理详解
c语言
一个不知名程序员www20 分钟前
算法学习入门---算法题DAY3
c++·算法
七夜zippoe22 分钟前
DolphinDB向量化计算:高性能数据处理
算法·dolphindb
悠仁さん31 分钟前
哈夫曼树的简单介绍
算法
bIo7lyA8v32 分钟前
算法与数据结构协同优化的设计思想的技术8
数据结构·算法
Lsk_Smion35 分钟前
力扣实训 _ [98].验证二叉搜索树 _ 将二叉树展开成链表
数据结构·算法·leetcode