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;
}
相关推荐
-凌凌漆-19 分钟前
【C语言】结构体typedef struct与struct的区别
c语言·开发语言
Nil20825 分钟前
leetcode 108有序数组转换为二叉搜索树
数据结构·算法·leetcode
高频因子挖掘机26 分钟前
QuantDash 成交量单位统一实战:从“手”到“股”的跨市场量化数据清洗全流程
后端·算法·github
caimouse36 分钟前
ReactOS 窗口系统分析(24):输入法 — ime.c
c语言·reactos
Escalating_xu44 分钟前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
ly76891 小时前
C 语言从入门到进阶:语法、指针、内存管理与工程实践详解
c语言·开发语言
纪念 2291 小时前
算法二叉树(一)
算法
liulilittle2 小时前
llmx 学习手册 06 —— CPU 指令集优化(AVX-512 三层演进)
c++·学习·算法·ai·llm
土司大王2 小时前
LeetCode hot100——相交链表
算法·leetcode·链表
土司大王2 小时前
LeetCode hot100——回文链表
算法·leetcode·链表