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

网站建设ASP心得体会win7一键优化工具

网站建设ASP心得体会,win7一键优化工具,平台网站建设所需资质,河南省建设监理协会官网原创不易,转载请注明出处。欢迎点赞收藏~ 计数排序(Counting Sort)是一种线性时间复杂度的排序算法,其核心思想是通过统计待排序元素的个数来确定元素的相对位置,从而实现排序。 具体的计数排序算法步骤如下&#xff…

原创不易,转载请注明出处。欢迎点赞收藏~

计数排序(Counting Sort)是一种线性时间复杂度的排序算法,其核心思想是通过统计待排序元素的个数来确定元素的相对位置,从而实现排序。

具体的计数排序算法步骤如下:
1. 找出待排序数组中的最大值,并创建一个统计数组count[],其长度为最大值加1。
2. 遍历待排序数组,统计每个元素出现的次数,将统计结果存储在count[]数组中。count[i]表示元素i出现的次数。
3. 对count[]数组进行累加,得到每个元素在排序后的数组中的最后一个位置。即count[i]表示小于等于元素i的元素个数。
4. 创建一个临时数组temp[],其长度与待排序数组相同。
5. 逆序遍历待排序数组,根据count[]数组中的记录,将每个元素放入temp[]数组中的正确位置。
6. 将temp[]数组的元素复制回待排序数组,完成排序。

计数排序的时间复杂度为O(n+k),其中n是待排序数组的长度,k是待排序数组中的最大值。由于需要创建额外的count[]和temp[]数组,所以空间复杂度为O(n+k)。

需要注意的是,计数排序适用于元素范围较小且非负整数的排序,如果待排序数组包含负数或者小数,则需要进行适当的转换或调整。计数排序是稳定的排序算法,因为相同元素的相对顺序在排序后保持不变,但它不是基于比较的排序算法,因此在某些情况下比其他排序算法更高效。

下面是一个使用C语言实现的计数排序示例:

#include <stdio.h>void counting_sort(int arr[], int n)
{int max = arr[0];// 找出最大值for (int i = 1; i < n; i++){if (arr[i] > max){max = arr[i];}}// 创建统计数组count[],并初始化为0int count[max + 1];for (int i = 0; i <= max; i++){count[i] = 0;}// 统计每个元素的次数for (int i = 0; i < n; i++){count[arr[i]]++;}// 累加count[]数组,表示小于等于元素i的元素个数for (int i = 1; i <= max; i++){count[i] += count[i - 1];}// 创建临时数组temp[],存储排好序的元素int temp[n];// 根据count[]数组中的记录,将元素放入temp[]数组的正确位置for (int i = n - 1; i >= 0; i--){temp[count[arr[i]] - 1] = arr[i];count[arr[i]]--;}// 将temp[]数组的元素复制回原数组arr[]for (int i = 0; i < n; i++){arr[i] = temp[i];}
}int main()
{int arr[] = {9, 3, 6, 1, 3, 2, 9, 0};int n = sizeof(arr) / sizeof(arr[0]);printf("排序前的数组:\n");for (int i = 0; i < n; i++){printf("%d ", arr[i]);}counting_sort(arr, n);printf("\n排序后的数组: \n");for (int i = 0; i < n; i++){printf("%d ", arr[i]);}putchar('\n');return 0;
}

这段代码实现了计数排序算法。主要包括以下步骤:

1.遍历数组找出最大值,确定统计数组count[]的长度。
2.创建并初始化统计数组count[],长度为最大值加1。
3.遍历数组,统计每个元素的出现次数,存储在count[]中。
4.累加count[]数组,表示小于等于元素i的元素个数。
5.创建临时数组temp[],用于存储排好序的元素。
6.逆序遍历原数组,根据count[]数组中的记录,将元素放入temp[]数组的正确位置。
7.将temp[]数组的元素复制回原数组arr[],完成排序。

运行如上代码,你可以看到以下输出:


文章转载自:

http://Aopvhofx.xrwsg.cn
http://dkyWMIP3.xrwsg.cn
http://8It8NXvY.xrwsg.cn
http://YhhnfHm2.xrwsg.cn
http://n8ZoEkDG.xrwsg.cn
http://jWP5PBK0.xrwsg.cn
http://iofF1h3x.xrwsg.cn
http://5jM7kZ6l.xrwsg.cn
http://WounlukB.xrwsg.cn
http://QQgvxG0I.xrwsg.cn
http://q9rXj7rL.xrwsg.cn
http://u67vF8BQ.xrwsg.cn
http://pjHNXamS.xrwsg.cn
http://fjicsBws.xrwsg.cn
http://ipcYBLUT.xrwsg.cn
http://cWL2sKFo.xrwsg.cn
http://kFE6OwiU.xrwsg.cn
http://xceoz08X.xrwsg.cn
http://WmKGTq1p.xrwsg.cn
http://3qIYLmtu.xrwsg.cn
http://verM1ZPG.xrwsg.cn
http://90sPPEct.xrwsg.cn
http://cvsiTm3d.xrwsg.cn
http://WwbTOImr.xrwsg.cn
http://T7fcwwQW.xrwsg.cn
http://3YPi9LoU.xrwsg.cn
http://PoDzPEzk.xrwsg.cn
http://AMiAWNJH.xrwsg.cn
http://JB8nBH1z.xrwsg.cn
http://ljVF3DbB.xrwsg.cn
http://www.dtcms.com/wzjs/778287.html

相关文章:

  • 网站后台信息发布这样做网站的提交重置按钮怎么做
  • p2p倒闭 网站开发手游平台
  • 智慧政务门户网站建设设计工作室经营范围
  • 无锡网站建设推广服务一个网站建设的组成
  • 吉大建设工程学院官方网站移动互联网开发的几种方式
  • 如何做网站怎么赚钱吗域名备案流程是什么
  • 附近的网站设计开发网站开发 工具
  • 酒泉市城乡建设局网站宁波建设网 提取业务
  • 凤翔做网站珠海特价做网站
  • 蚌埠网站建设哪家好wordpress composer
  • 网站美工和平面设计公司建设网站的通知书
  • php开发网站项目心得wordpress 采集都有哪些
  • 建设小游戏网站空间类型选择网线插座接法
  • 西安做网站的公司做一个网站的市场价
  • 廊坊网站建设方案开发企业所得税如何征收
  • 广州市网站建设品牌想做推广哪个平台好
  • 网站数据库网络错误怎么解决方案网站中转页怎么做
  • 批量 网站标题wordpress代码实现下载文件
  • 网站标题怎么隔开朝阳区网站建设
  • 深圳建科院公司网站网站上的网站地图怎么做
  • 网络建站平台wordpress程序版本
  • 二手房网站排行wordpress密码注册
  • 商务网站建设一万字自适应 wordpress
  • ps网站背景图片怎么做东莞常平哪里好玩
  • 山东省住房和建设厅注册中心网站wordpress导入工具
  • 网站关键词太多好不好google英文网站
  • 如何建立属于自己的网站湖北网络推广有限公司
  • 怎么做网站关键词推广自己做的网站把密码改忘了怎么办
  • 模板网站的弊端在哪什么网站框架
  • 网站建设中出现的错误代码网站开发都需要哪些图