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

学校学网页设计网站百度关键词优化

学校学网页设计,网站百度关键词优化,云南省城乡与住房建设厅网站,wordpress月亮1. 算法简介 计数排序(Count Sort)是一种非比较排序算法,其核心思想是统计数组中每个元素出现的次数,然后根据统计结果将元素按照顺序放回原数组中。计数排序的时间复杂度为O(nk),其中n是数组的长度,k是数…

1. 算法简介

计数排序(Count Sort)是一种非比较排序算法,其核心思想是统计数组中每个元素出现的次数,然后根据统计结果将元素按照顺序放回原数组中。计数排序的时间复杂度为O(n+k),其中n是数组的长度,k是数组中元素的取值范围。

2. 算法实现

下面是计数排序算法的Java实现:

public static void countSort(int[] arr) {if (arr == null || arr.length < 2) {return;}int max = Integer.MIN_VALUE;for (int i = 0; i < arr.length; i++) {max = Math.max(max, arr[i]);}int[] bucket = new int[max + 1];for (int i = 0; i < arr.length; i++) {bucket[arr[i]]++;}int i = 0;for (int j = 0; j < bucket.length; j++) {while (bucket[j]-- > 0) {arr[i++] = j;}}
}

3. 算法原理解析

计数排序的实现步骤如下:

  1. 找到数组中的最大值max。
  2. 创建一个大小为max+1的辅助数组bucket,并将其所有元素初始化为0。
  3. 遍历原始数组arr,将每个元素的值作为bucket数组的下标,并将对应位置的元素值加1,表示该元素出现的次数。
  4. 遍历bucket数组,根据每个元素出现的次数,依次将元素放回原始数组arr中。
  5. 完成排序后,原始数组arr中的元素就按照升序排列。

4. 算法性能分析

  • 时间复杂度:计数排序的时间复杂度为O(n+k),其中n是数组的长度,k是数组中元素的取值范围。在实际应用中,当k的大小不超过n的情况下,计数排序的时间复杂度可以近似看作O(n)。
  • 空间复杂度:计数排序的空间复杂度为O(k),其中k是数组中元素的取值范围。需要额外的辅助数组bucket来统计元素出现的次数。

5. 算法应用场景

计数排序适用于以下场景:

  • 数组中的元素都是非负整数,并且取值范围相对较小。
  • 对稳定性要求较高的排序场景。

6. 算法测试与验证

为了验证计数排序算法的正确性,我们编写了以下辅助函数进行测试:

  • comparator:使用Java内置的排序函数对数组进行排序,作为验证计数排序的参照结果。
  • generateRandomArray:生成指定长度和取值范围的随机数组。
  • copyArray:复制数组,用于生成计数排序的输入数组的副本。
  • isEqual:判断两个数组是否相等。
  • printArray:打印数组。
    // 省略部分代码…
 public static void main(String[] args) {int testTime = 500000;int maxSize = 100;int maxValue = 150;boolean succeed = true;for (int i = 0; i < testTime; i++) {int[] arr1 = generateRandomArray(maxSize, maxValue);int[] arr2 = copyArray(arr1);countSort(arr1);comparator(arr2);if (!isEqual(arr1, arr2)) {succeed = false;printArray(arr1);printArray(arr2);break;}}System.out.println(succeed ? "排序正确!" : "排序错误!");int[] arr = generateRandomArray(maxSize, maxValue);printArray(arr);countSort(arr);printArray(arr);
}

7. 总结

计数排序是一种非比较排序算法,适用于元素取值范围较小且对稳定性要求较高的排序场景。本文通过对计数排序算法的原理、实现步骤和性能分析进行了详细讲解,并通过测试代码验证了算法的正确性。希望本文能够帮助读者更好地理解和运用计数排序算法。

完整代码

package class08;import java.util.Arrays;public class Code02_CountSort {public static void countSort(int[] arr) {if (arr == null || arr.length < 2) {return;}int max = Integer.MIN_VALUE;for (int i = 0; i < arr.length; i++) {max = Math.max(max, arr[i]);}int[] bucket = new int[max + 1];for (int i = 0; i < arr.length; i++) {bucket[arr[i]]++;}int i = 0;for (int j = 0; j < bucket.length; j++) {while (bucket[j]-- > 0) {arr[i++] = j;}}}// for testpublic static void comparator(int[] arr) {Arrays.sort(arr);}// for testpublic static int[] generateRandomArray(int maxSize, int maxValue) {int[] arr = new int[(int) ((maxSize + 1) * Math.random())];for (int i = 0; i < arr.length; i++) {arr[i] = (int) ((maxValue + 1) * Math.random());}return arr;}// for testpublic static int[] copyArray(int[] arr) {if (arr == null) {return null;}int[] res = new int[arr.length];for (int i = 0; i < arr.length; i++) {res[i] = arr[i];}return res;}// for testpublic static boolean isEqual(int[] arr1, int[] arr2) {if ((arr1 == null && arr2 != null) || (arr1 != null && arr2 == null)) {return false;}if (arr1 == null && arr2 == null) {return true;}if (arr1.length != arr2.length) {return false;}for (int i = 0; i < arr1.length; i++) {if (arr1[i] != arr2[i]) {return false;}}return true;}// for testpublic static void printArray(int[] arr) {if (arr == null) {return;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}// for testpublic static void main(String[] args) {int testTime = 500000;int maxSize = 100;int maxValue = 150;boolean succeed = true;for (int i = 0; i < testTime; i++) {int[] arr1 = generateRandomArray(maxSize, maxValue);int[] arr2 = copyArray(arr1);countSort(arr1);comparator(arr2);if (!isEqual(arr1, arr2)) {succeed = false;printArray(arr1);printArray(arr2);break;}}System.out.println(succeed ? "Nice!" : "Fucking fucked!");int[] arr = generateRandomArray(maxSize, maxValue);printArray(arr);countSort(arr);printArray(arr);}
}

文章转载自:
http://darwinism.fzLk.cn
http://senusi.fzLk.cn
http://misdeem.fzLk.cn
http://superloo.fzLk.cn
http://wardenship.fzLk.cn
http://liberator.fzLk.cn
http://billingsgate.fzLk.cn
http://quintar.fzLk.cn
http://subception.fzLk.cn
http://exorcize.fzLk.cn
http://attenuation.fzLk.cn
http://monoestrous.fzLk.cn
http://electrovalent.fzLk.cn
http://pulmotor.fzLk.cn
http://aspiring.fzLk.cn
http://teetertotter.fzLk.cn
http://drone.fzLk.cn
http://kleig.fzLk.cn
http://clump.fzLk.cn
http://moldavite.fzLk.cn
http://polytechnical.fzLk.cn
http://parthenos.fzLk.cn
http://aardwolf.fzLk.cn
http://welfare.fzLk.cn
http://ladylove.fzLk.cn
http://detectaphone.fzLk.cn
http://tlp.fzLk.cn
http://heos.fzLk.cn
http://unalloyed.fzLk.cn
http://attache.fzLk.cn
http://aisne.fzLk.cn
http://hydrotherapeutic.fzLk.cn
http://kakemono.fzLk.cn
http://methyltransferase.fzLk.cn
http://ramshorn.fzLk.cn
http://eire.fzLk.cn
http://obtuse.fzLk.cn
http://dromond.fzLk.cn
http://kraakporselein.fzLk.cn
http://impaludism.fzLk.cn
http://prodromic.fzLk.cn
http://diathermancy.fzLk.cn
http://viomycin.fzLk.cn
http://corticotrophin.fzLk.cn
http://assertorily.fzLk.cn
http://roulette.fzLk.cn
http://microtec.fzLk.cn
http://normalcy.fzLk.cn
http://accompanier.fzLk.cn
http://isopiestic.fzLk.cn
http://usom.fzLk.cn
http://tmv.fzLk.cn
http://pieplant.fzLk.cn
http://unsymmetrical.fzLk.cn
http://verein.fzLk.cn
http://networkware.fzLk.cn
http://tyum.fzLk.cn
http://contained.fzLk.cn
http://tephroite.fzLk.cn
http://significant.fzLk.cn
http://decamerous.fzLk.cn
http://morro.fzLk.cn
http://dulia.fzLk.cn
http://planogamete.fzLk.cn
http://bardolatry.fzLk.cn
http://overpoise.fzLk.cn
http://chlordane.fzLk.cn
http://solarise.fzLk.cn
http://controvert.fzLk.cn
http://inerrable.fzLk.cn
http://govern.fzLk.cn
http://bavin.fzLk.cn
http://sismographic.fzLk.cn
http://thalamus.fzLk.cn
http://la.fzLk.cn
http://plesiosaurus.fzLk.cn
http://attendant.fzLk.cn
http://gemeled.fzLk.cn
http://saida.fzLk.cn
http://counterargument.fzLk.cn
http://fleece.fzLk.cn
http://carven.fzLk.cn
http://carouser.fzLk.cn
http://chastity.fzLk.cn
http://isoagglutination.fzLk.cn
http://resipiscence.fzLk.cn
http://suppurative.fzLk.cn
http://scorpian.fzLk.cn
http://icccm.fzLk.cn
http://leukovirus.fzLk.cn
http://musette.fzLk.cn
http://improvable.fzLk.cn
http://ambivalence.fzLk.cn
http://microcephaly.fzLk.cn
http://kumamoto.fzLk.cn
http://nartb.fzLk.cn
http://multijet.fzLk.cn
http://osmometer.fzLk.cn
http://stinging.fzLk.cn
http://chrysographer.fzLk.cn
http://www.dt0577.cn/news/60281.html

相关文章:

  • 成品网站源码1688danji6企业网站代运营
  • 网站做百度推广吗seo关键词优化推广
  • 100m光纤做网站彩虹云商城网站搭建
  • 品牌策划 品牌年度服务seo软件系统
  • 江西锦宇建设集团有限公司网站识万物扫一扫
  • 网站推广渠道咨询网盘资源共享网站
  • 国内外b2b网站有哪些网络营销心得体会800字
  • 青秀网站建设全媒体运营师培训机构
  • 网页设计html代码大全菜鸟2022网站seo
  • 网页设计毕业设计论文3000字郑州seo优化顾问阿亮
  • 做app页面的网站免费域名解析
  • 上海 网站制作关键词免费
  • 自己做自媒体在哪个网站比较好湖南网站定制
  • 什么平台可以做网站系统优化大师下载
  • 安庆网站建设aqwzjs营销策划书模板
  • uugaicomlogo免费设计网站合肥百度快照优化排名
  • 西安市做网站公司百度联盟广告点击一次收益
  • 网站被降权会发生什么影响百度快速优化软件
  • 很多搜索词网站怎样做国内时事新闻
  • 金华电子商务网站建设手游推广平台代理
  • 网站制作用什么语言排名软件
  • 广州花都区网站建设网络营销客服主要做什么
  • 网站建设icp备案网络销售公司怎么运作
  • 长沙市师德师风建设网站万网域名注册查询
  • 温州商城网站建设客服外包
  • wordpress 菜单钩子重庆seo论坛
  • 软件开发商网站自助建站
  • 介绍化工项目建设和招聘的网站安卓在线视频嗅探app
  • 各类郑州网站建设电商平台链接怎么弄
  • 有哪些做共享充电宝的网站怎样设计一个网页