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;
}
相关推荐
芥子须弥Office39 分钟前
从C++0基础到C++入门 (第二十五节:指针【所占内存空间】)
c语言·开发语言·c++·笔记
啊阿狸不会拉杆40 分钟前
《算法导论》第 14 章 - 数据结构的扩张
数据结构·c++·算法·排序算法
Q741_1472 小时前
如何判断一个数是 2 的幂 / 3 的幂 / 4 的幂 / n 的幂 位运算 总结和思考 每日一题 C++的题解与思路
开发语言·c++·算法·leetcode·位运算·总结思考
小王爱学人工智能2 小时前
快速了解DBSCAN算法
算法·机器学习·支持向量机
小沈同学呀2 小时前
阿里巴巴高级Java工程师面试算法真题解析:LRU Cache实现
java·算法·面试
小郝 小郝3 小时前
开启单片机
c语言·单片机·嵌入式硬件·学习·51单片机
我今晚不熬夜3 小时前
使用单调栈解决力扣第42题--接雨水
java·数据结构·算法·leetcode
flashlight_hi4 小时前
LeetCode 分类刷题:209. 长度最小的子数组
javascript·算法·leetcode
展信佳_daydayup5 小时前
0-1 深度学习基础——文件读取
算法
高斯林.神犇5 小时前
冒泡排序实现以及优化
数据结构·算法·排序算法