发布时间:2023-02-12 15:00
//希尔排序算法
void ShellSort(int arr[], int len) {
int d, i, j;
//arr[0]只是暂存单元,不是哨兵,当j<=0时,表示到达插入位置
for (d = len / 2; d >= 1; d /= 2) { //步长变化,每次取一半
for (i = d + 1; i <= len; ++i) { //从每个子表的第二个元素开始进行直接插入排序
if (arr[i] < arr[i - d]) { //将arr[i]插入有序增量表
arr[0] = arr[i]; //将arr[i]暂存在arr[0]中
for (j = i - d; j > 0 && arr[0] < arr[j]; j -= d)
arr[j + d] = arr[j]; //记录后移,查找插入位置
arr[j + d] = arr[0]; //插入
}
}
}
}
//插入排序————希尔排序(不稳定,空间复杂度为O(1),最坏时间复杂度为O(n^2))
#include
#include
//希尔排序算法
void ShellSort(int arr[], int len) {
int d, i, j;
//arr[0]只是暂存单元,不是哨兵,当j<=0时,表示到达插入位置
for (d = len / 2; d >= 1; d /= 2) { //步长变化,每次取一半
for (i = d + 1; i <= len; ++i) { //从每个子表的第二个元素开始进行直接插入排序
if (arr[i] < arr[i - d]) { //将arr[i]插入有序增量表
arr[0] = arr[i]; //将arr[i]暂存在arr[0]中
for (j = i - d; j > 0 && arr[0] < arr[j]; j -= d)
arr[j + d] = arr[j]; //记录后移,查找插入位置
arr[j + d] = arr[0]; //插入
}
}
}
}
int main() {
//数组中第0号位置的值不是有效值!
int arr[] = {0, 49, 38, 65, 97, 76, 13, 27, 49};
int len = sizeof(arr) / sizeof(int);
//希尔排序
ShellSort(arr, len);
//将已排序的结果逐个输出
printf(\"希尔排序结果为:\");
for (int i = 1; i < len; ++i) {
printf(\"%d \", arr[i]);
}
return 0;
}
int arr[] = {0, 49, 38, 65, 97, 76, 13, 27, 49};
面试官:主说 Git Rebase 和 Git Merge 差异
ant-design-pro使用qiankun微服务配置动态主题色的问题
JDBC---把查询的结果封装到相应的实体上(实体类entity) 把对每一张表的操作封装到相应的类上(操作类Dao) 抽取一个dao的公共父类 可变长度的参数
解决 “TypeError: Cannot read properties of undefined (reading ‘xxx‘)“
系统在此应用程序堆栈溢出_Web应用程序:在开始之前选择正确的技术堆栈
牛客面经 | BAT、美团、360、滴滴新锐……2W字干货,这不仅仅是一篇面经
谐波小波matlab,基于MATLAB小波变换在电网谐波检测的仿真与研究
SpringBoot系列——Security + Layui实现一套权限管理后台模板