发布时间: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};
苹果ios14以上微信聊天记录备份时,提示当前网络状况复杂和连接失败的解决办法
图神经网络(Graph neural networks)综述
[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程
(七)Linux中的无人职守安装脚本kickstart2021-11-12
react项目http-proxy-middleware跨域问题
第二十二:Python3+Selenium2+Pytest+Pytest-Html的UI自动化测试实战实例(二)
Spring boot 2.5 集成 Elasticsearch 实现增删改查以及全文搜索