当前位置: 首页 > news >正文

有哪些营销型网站推荐ui做自适应网站

有哪些营销型网站推荐,ui做自适应网站,开发网址需要多少钱,网站建设岗位风险防控文章目录 1. 希尔排序#xff08;Shellsort#xff09;1.1 简介1.2 希尔排序的步骤1.3 希尔排序的C实现1.4 时间复杂度1.5 空间复杂度1.6 希尔排序动画 1. 希尔排序#xff08;Shellsort#xff09; 1.1 简介 希尔排序#xff08;Shells Sort#xff09;#xff0c;又… 文章目录 1. 希尔排序Shellsort1.1 简介1.2 希尔排序的步骤1.3 希尔排序的C实现1.4 时间复杂度1.5 空间复杂度1.6 希尔排序动画 1. 希尔排序Shellsort 1.1 简介 希尔排序Shells Sort又称缩小增量排序Diminishing Increment Sort是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法其核心思想是通过逐渐减小元素之间的间隔使得序列在初始阶段就呈现局部有序从而减少插入排序的工作量。希尔排序的基本思想是将待排序的序列划分成若干个子序列分别进行插入排序。随着增量逐渐减少每组包含的关键词越来越多当增量减至1时整个序列恰被分成一组此时再对全体记录进行一次直接插入排序排序完成。 1.2 希尔排序的步骤 选择一个增量序列该序列通常是递减的正整数序列。常用的增量序列有希尔建议的序列、Hibbard序列、Sedgewick序列等。增量序列的选择会直接影响希尔排序的性能。使用选定的增量序列进行外层循环每次循环缩小增量。在每一轮外层循环中通过增量对元素进行分组每组包含相隔一定间隔的元素。这一步骤旨在逐步减小元素之间的间隔从而实现序列的局部有序。在每一组内通过插入排序对元素进行排序。这是希尔排序的关键步骤通过比较相隔增量的元素并在需要时交换它们的位置逐步实现每个小组的局部有序。重复外层循环和内层循环逐渐减小增量直到增量为1。最后一次外层循环使用增量为1相当于进行一次标准的插入排序。此时整个序列已经基本有序最终完成排序。 1.3 希尔排序的C实现 #include stdio.h// 希尔排序函数带步骤输出 void shellSort(int arr[], int n) {// 初始增量设置为数组长度的一半for (int gap n / 2; gap 0; gap / 2) {printf(当前间隔 (gap): %d\n, gap); // 输出当前的间隔// 对每个增量子数组进行插入排序for (int i gap; i n; i) {int temp arr[i];int j;printf( 当前插入元素 (arr[%d]): %d\n, i, temp);// 在增量子数组中向前移动元素直到找到合适的位置for (j i; j gap arr[j - gap] temp; j - gap) {printf( 比较并移动元素 (arr[%d] %d) 到位置 arr[%d]\n, j - gap, arr[j - gap], j);arr[j] arr[j - gap];}// 将当前元素放到合适的位置arr[j] temp;printf( 将元素 %d 插入到位置 arr[%d]\n, temp, j);// 输出每次插入后的数组状态printf( 当前数组状态: );for (int k 0; k n; k) {printf(%d , arr[k]);}printf(\n);}// 输出每次间隔完成后的数组状态printf(间隔 %d 排序后的数组: , gap);for (int i 0; i n; i) {printf(%d , arr[i]);}printf(\n\n);} }// 打印数组函数 void printArray(int arr[], int size) {for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n); }// 主函数 int main() {int arr[] {22, 48, 65, 68, 68, 10, 84, 45, 37, 88, 71, 89, 89, 13, 59};int n sizeof(arr) / sizeof(arr[0]);printf(排序前的数组: \n);printArray(arr, n);shellSort(arr, n);printf(排序后的数组: \n);printArray(arr, n);return 0; } 希尔排序Shell Sort的时间复杂度和空间复杂度分析如下 1.4 时间复杂度 希尔排序的时间复杂度取决于所选的增量序列。对于不同的增量序列希尔排序的性能可能会有很大的差异。最坏情况使用原始的希尔增量即每次将增量减半从 n 2 \frac{n}{2} 2n​开始希尔排序的时间复杂度在最坏情况下可以达到O(n2)。这通常发生在数据已经接近有序但尚未完全有序的情况下因为此时的插入排序希尔排序在增量为1时的特殊情况可能会执行大量的元素移动。 平均情况在实际应用中希尔排序通常比简单的插入排序要快得多特别是在处理大数据集时。虽然其最坏情况时间复杂度较高但平均情况下希尔排序的性能通常优于O(n2)的排序算法。 最优增量序列通过选择更好的增量序列如Hibbard增量、Sedgewick增量等可以进一步改进希尔排序的性能。然而找到最优的增量序列仍然是一个未解决的问题因此希尔排序的时间复杂度在很大程度上仍然是一个开放性问题。 实验观察实验结果表明对于中等规模的数据集希尔排序的性能通常与快速排序Quick Sort相当甚至在某些情况下可能更快。然而对于非常大的数据集快速排序通常具有更好的性能。 1.5 空间复杂度 希尔排序是一种原地排序算法in-place sorting algorithm这意味着它只需要一个与输入数组大小相同的额外空间来存储临时变量在插入排序的每一步中用于保存要插入的元素。因此希尔排序的空间复杂度是O(1)。 1.6 希尔排序动画 在希尔排序的动画中用三种颜色来帮助理解排序过程橙色当前插入的元素表示正在考虑插入排序的那个元素i。绿色正在比较或插入的位置表示当前正在比较或准备插入的具体位置j。紫色属于同一间隔组的元素用来表明在当前的间隔gap下这些元素属于同一组将通过插入排序在组内进行比较和排序。
http://www.hkea.cn/news/14310270/

相关文章:

  • 怎么找网站做公示做网站为什么要域名 解析绑定
  • 网站托管维护网络开发公司是干什么的
  • 公司网站建设任务书wordpress头像修改
  • 安远做网站深圳知名的网站公司简介
  • 网站域名空间怎么弄啊万州电商网站建设
  • 网站设计怎么学制定 网站改版优化方案
  • 镇江网站建设介绍WordPress修改登录短代码
  • 计算机专业网站开发开题报告建设网站 程序员的提成
  • 网站的验证码是怎么做的竞价托管外包
  • 门户网站建设信息工作讲话wordpress数据表文档
  • 网站建设著作权办网站 哪些许可
  • 黄冈做网站的公司网站开发的调研
  • 网站建设销售找客户话术知名品牌营销案例100例
  • 免费做长图的网站公司网站建设费用 知乎
  • 宝山做手机网站建设营销有哪些基本内容
  • 做动态图片的网站吗专业手机网站建设
  • 做网站时的注册权起到什么作用WordPress与dz用户恭喜
  • 烂网站做竞价行吗宁波城乡建设网站
  • 网站开发系统架构图wordpress点播视频模版
  • 淘客怎么建网站做推广厦门seo优
  • 电视台网站建设方案.docwordpress 热门排行
  • 手机网站策划书2345网址导航下载到桌面
  • 淘宝网站建设h5和手机网站
  • 尖扎网站建设公司装修设计的网站
  • 山东省建设厅网站一体化平台wp网站建设模板
  • 大型购物网站设计移动端显卡
  • 织梦网站地图怎么做xml网页翻译扩展
  • 网站怎么实现两种语言花都网站推广
  • 公司网站建设计划书专业制作网站用哪些软件
  • 当当网站建设优点网站左侧图片悬浮代码