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

企业网站做seo的优势软文营销的写作技巧有哪些

企业网站做seo的优势,软文营销的写作技巧有哪些,国外视觉差网站,wordpress自定义登陆页面🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️计数排序的概念☁️什么是计数排序?☁️计数排序思想⭐绝对…

在这里插入图片描述

🎥 屿小夏 : 个人主页
🔥个人专栏 : 算法—排序篇
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 🌤️计数排序的概念
    • ☁️什么是计数排序?
    • ☁️计数排序思想
      • ⭐绝对映射
      • ⭐相对映射
  • 🌤️计数排序的实现
    • ☁️实现思路
    • ☁️代码实现
    • ☁️代码解析
  • 🌤️计数排序特性总结
    • ☁️时间复杂度:
    • ☁️空间复杂度
    • ☁️稳定性
    • ☁️适用性限制
    • ☁️不适用于大规模数据
    • ☁️总结
  • 🌤️全篇总结

📑前言

什么是计数排序?计数排序的思想是什么?它是如何实现的?

本文会对计数排序进行由浅入深的探究,让你彻底掌握计数排序!

🌤️计数排序的概念

☁️什么是计数排序?

​ 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。

​ 统计每个元素出现的次数,然后根据元素的大小顺序将它们放入正确的位置。

☁️计数排序思想

计数排序是一种小众的排序,它适合于数据密集的场景,按最大数的数值来开空间。

⭐绝对映射

假设现有一组数据,最大的数据是1000,那么便会开一千个大小的空间,这种属于绝对映射,在极端的场景下,极易造成空间上的浪费,比如现在有5,99,88,1000,8888,452,635,82,777,555,只有10个数但是最大的数是8888因此要开8888大小的空间,剩余的空间全部都浪费了。

⭐相对映射

因此绝大多数情况下,都会使用相对映射。

具体的步骤如下:

  1. 找出待排序数组中的最大值和最小值,并创建一个计数数组,长度为最大值和最小值之差加1。
  2. 遍历待排序数组,统计每个元素出现的次数,并将次数存储在计数数组的相应位置上。
  3. 对计数数组进行累加操作,得到每个元素在排序后数组中的最终位置。
  4. 创建一个与待排序数组长度相同的临时数组,用于存储排序后的结果。
  5. 从后向前遍历待排序数组,根据计数数组中每个元素的值,将元素放入临时数组的相应位置上。
  6. 将临时数组中的元素复制回待排序数组,完成排序。

在这里插入图片描述

🌤️计数排序的实现

☁️实现思路

  1. 找到数组中的最小值和最大值,以确定计数数组的大小。
  2. 然后,根据最小值和最大值计算计数数组的大小,并分配内存空间。
  3. 接下来,将计数数组的所有元素初始化为0。
  4. 然后,遍历原数组,统计每个元素出现的次数,将统计结果保存在计数数组中。
  5. 接着,使用两个循环,将计数数组中的元素按照次数依次放回原数组中。
  6. 最后,释放计数数组的内存空间。

☁️代码实现

//计数排序
void CountSort(int* a, int n)
{int min = a[0];int max = a[0];for (int i = 0; i < n; i++){if (a[i] < min){min = a[i];}if (a[i] > max){max = a[i];}}int range = max - min + 1;int* count = (int*)malloc(sizeof(int) * range);if (count == NULL){perror("malloc fail");exit(-1);}memset(count, 0, sizeof(int) * range);for (int i = 0; i < n; i++){count[a[i] - min]++;}int j = 0;for (int i = 0; i < range; i++){while (count[i]--){a[j++] = i + min;}}
}

☁️代码解析

  1. 寻找最小值和最大值: 首先,通过循环遍历输入数组 a,找到数组中的最小值 min 和最大值 max。这是为了确定排序范围。
  2. 确定排序范围: 计算排序范围 range,即 (max - min + 1),这表示需要排序的整数范围。
  3. 创建计数数组: 使用 malloc 函数为计数数组 count 分配内存,该数组的大小是排序范围 range。计数数组用于存储每个整数在输入数组中出现的次数。
  4. 初始化计数数组: 使用 memset 函数将计数数组 count 中的所有元素初始化为0。
  5. 计数: 遍历输入数组 a,对于每个整数 a[i],将其减去 min 的值作为索引,然后在计数数组中对应索引位置的值加1。这一步会统计每个整数在输入数组中出现的次数。
  6. 重构排序数组: 使用两个循环,首先遍历计数数组 count,然后在内部循环中,根据计数数组中的值,将相应数量的整数值还原到原始输入数组 a。这将完成排序过程。

🌤️计数排序特性总结

☁️时间复杂度:

计数排序的时间复杂度为 O(n+k),其中 n 是输入数组的大小,k 是整数的范围。它具有线性时间复杂度的优点,适用于整数排序,特别是当整数范围相对较小且分布均匀时。

☁️空间复杂度

计数排序的空间复杂度取决于整数范围,为 O(k)。因此,它需要额外的空间来存储计数数组,当整数范围较大时可能会占用较多内存。

☁️稳定性

计数排序是一种稳定的排序算法。稳定性意味着具有相同值的元素在排序后仍保持相对顺序不变。在计数排序中,具有相同值的元素会按照它们在输入数组中的顺序被放置在输出数组中。

☁️适用性限制

计数排序仅适用于整数排序,特别是当整数范围相对较小且分布均匀时。它不适用于排序包含负数或浮点数的数组。此外,如果整数范围过大,可能会导致内存占用过多。

☁️不适用于大规模数据

尽管计数排序具有线性时间复杂度的优点,但它对于大规模数据集的排序可能并不理想。当整数范围非常大且分布不均匀时,计数排序的性能可能会受到限制。

☁️总结

计数排序适用于特定范围内的整数排序,并且在这种情况下具有稳定的性能表现。然而,在应用计数排序时,需要仔细考虑整数范围和数据集的分布情况,以确保不会出现内存占用过大或性能下降的情况。

🌤️全篇总结

本章专门对计数排序从概念到实现,进行了细致入微的讲解,期望对你理解掌握计数有所帮助!

看到这里希望给博主留个:👍点赞🌟收藏⭐️关注!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。

在这里插入图片描述

http://www.hrbkazy.com/news/48797.html

相关文章:

  • 市场营销的十大理论优化设计答案大全英语
  • 天津网站建设渠道如何在网络上推广产品
  • 北京海淀建筑行业培训中心青岛官网seo
  • 平山做网站优化福建seo搜索引擎优化
  • 在家做兼职的正规网站平台app推广80元一单
  • wordpress用户名密码注册青岛网络seo公司
  • 做诱惑类cpa网站经验做一个官网要多少钱
  • 网站正在建设中 页面上海网站设计公司
  • 宁陵网站建设做公司网站
  • 如何建立公司企业网站百度反馈中心
  • 免费网站java上海公司网站seo
  • 音箱厂家东莞网站建设seo快速排名网站优化
  • wordpress 宝典 pdf黑帽seo之搜索引擎
  • 免费请美女做爰网站爱站小工具
  • 阿里云个人怎么免费做网站百度下载安装到手机
  • 小米手机做网站服务器seo推广的公司
  • 网站技术解决方案不包括岳阳网站设计
  • html5网站制作seo自媒体培训
  • 一级域名网站网站建设方案范文
  • 聊城网站推广软件网络推广需要什么
  • 杭州公司网站建设套餐专业做app软件开发公司
  • 做早餐的网站打开百度首页
  • 哈尔滨营销网站建设公司无锡网络推广平台
  • seo综合查询 站长工具电商怎么做?如何从零开始学做电商赚钱
  • 软件库网站源码seo技术培训东莞
  • 项目网站设计网络营销的工作内容包括哪些
  • 东阿网站建设软文推送
  • 自己有网站怎么做app网站交易
  • 做善事的网站重庆网站排名公司
  • 卖信息的网站企业网站营销优缺点