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;
}
相关推荐
沫璃染墨8 分钟前
红黑树完全指南:从核心原理到插入验证全实现
开发语言·c++·算法
拉拉拉拉拉拉拉马28 分钟前
Windsurf 最新版进阶讲解:从 Cascade 到 Devin Local,重新理解 AI 编程工作流
人工智能·算法
Mr_pyx30 分钟前
面试题记录
jvm·数据结构·算法·spring·mybatis
zzzsde31 分钟前
【Linux】线程同步和互斥(1):线程互斥与加锁实现
linux·运维·服务器·开发语言·算法
努力努力再努力wz39 分钟前
【C++高阶数据结构系列】:时间轮定时器详解:原理分析与代码实现,带你从零手撕时间轮!(附时间轮的实现源码)
c语言·开发语言·数据结构·c++·qt·算法·ui
水饺编程1 小时前
编程基础:令牌粘贴指令,【##】
c语言·c++·windows·visual studio
Chen_harmony1 小时前
十九、数据在内存中的存储
c语言·开发语言
basketball6161 小时前
C 的 malloc/free 与 C++ 的 new/delete 一些区别
c语言·开发语言·c++
mmz12071 小时前
广搜题目练习(c++)
c++·算法
YuanDaima20481 小时前
贪心算法基础原理与题目说明
数据结构·人工智能·python·算法·贪心算法·手撕代码