您的位置:首页 > 娱乐 > 八卦 > 怎么开网店无货源店铺_江苏镇江丹阳疫情最新消息今天_google seo怎么做_seo整站优化一年价格多少

怎么开网店无货源店铺_江苏镇江丹阳疫情最新消息今天_google seo怎么做_seo整站优化一年价格多少

2024/12/7 12:42:08 来源:https://blog.csdn.net/lightfuturezyx99/article/details/143726177  浏览:    关键词:怎么开网店无货源店铺_江苏镇江丹阳疫情最新消息今天_google seo怎么做_seo整站优化一年价格多少
怎么开网店无货源店铺_江苏镇江丹阳疫情最新消息今天_google seo怎么做_seo整站优化一年价格多少

任务描述
本关任务:实现shell排序算法,void ShellSort(int R[],int N,int d[],int t)。

相关知识
基本思想:对待排记录序列先作“宏观”调整,再作“微观”调整,它是由Donald.L.Shell在1959年提出来的。

所谓“宏观”调整,指的是,“跳跃式”的插入排序。    即:将记录序列分成若干子序列,每个子序列分别进行插入排序。关键是,这种子序列不是由相邻的记录构成的。

Donald.L.Shell设计的排序算法,特点:
    (1)  缩小增量
    (2)  多遍插入排序

例如,选用增量序列(4, 2,1)3个增量,进行3遍插入排序

案例:

#include <iostream>
#include <stdio.h>
using namespace std;
#define Max 500    /*N为数据量大小*/void ShellSort(int R[], int N, int d[], int t);
void Print(int R[], int N);int main()
{int *R, N, i, *d, t;cin >> N;R = new int[N + 1];for (i = 1; i <= N; i++)cin >> R[i];Print(R, N);cin >> t;d = new int[t];for (i = 0; i < t; i++)cin >> d[i];ShellSort(R, N, d, t);Print(R, N);return 0;
}void Print(int R[], int N)
{int i;cout << R[1];for (i = 2; i <= N; i++)cout << "," << R[i];cout << endl;
}void ShellSort(int R[], int N, int d[], int t)
{for (int k = 0; k < t; k++) { // 对于每个增量int dk = d[k];for (int i = dk + 1; i <= N; i++) { // 将R[i]插入到所在分组的有序序列中if (R[i] < R[i - dk]) {int j = i - dk;int temp = R[i];while (j > 0 && temp < R[j]) { // 移动元素R[j + dk] = R[j];j -= dk;}R[j + dk] = temp; // 插入元素}}Print(R, N); // 输出中间状态}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com