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

icp网站如何制作活动宣传网页

icp网站,如何制作活动宣传网页,科技手札,长沙软件公司有哪些简介 基数排序(*Radix sort)是一种非比较排序算法(non-comparative sorting algorithm)。现代计算机的基数排序算法由 计数排序 算法的开发人哈罗德H西华德(Harold H. Seward)于1954年于麻省理工大学开发。…

简介

基数排序(*Radix sort)是一种非比较排序算法(non-comparative sorting algorithm)。现代计算机的基数排序算法由 计数排序 算法的开发人哈罗德·H·西华德(Harold H. Seward)于1954年于麻省理工大学开发。

算法步骤

  1. 将待排序序列中的所有数视为同样的数位长度。
  2. 从最低位开始,依次按位进行一次计数排序
  3. 从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。

计数排序可参考之前发布的【算法】计数排序。

因为要计算负数,因此计数用的 数组 如下:

0123456789101112131415161718
-9-8-7-6-5-4-3-2-10123456789
  • [0 ~ 8] 用来表示负数 -9-1
  • [9] 用于表示 0
  • [10 ~ 18] 用来表示整数 19

举例有未排列序列如下:

2633-5-215

从个位数开始排序:

2[6]3[3]-[5]-1[2]1[5]
63-5-25

计数数列则为:

0123456789101112131415161718
11111

个位数排序为:

-12-5331526

从十位数开始排序:

-[1]2-[0]5[3]3[1]5[2]6
-10312

计数序列为:

0123456789101112131415161718
11111

十位数排序为:

-12-5152633

完成排序

C语言实现

// 获取序列中最大位数
unsigned _maxSizeOfItem(const int *array, const unsigned length) {int max = array[0];unsigned index = 1;unsigned number_1 = 0;unsigned number_2 = 0;while (index < length) {number_2 = array[index];if (max < 0) {number_1 = max * -1;} else {number_1 = max;}if (number_2 < 0) {number_2 *= -1;}if (number_2 > number_1) {max = array[index];}index += 1;}unsigned count = 0;while (max != 0) {max /= 10;count += 1;}return count;
}
// 复制数组。
void _copyArray(int *from_arr, int *to_arr, const unsigned length) {for (unsigned index = 0; index < length; index++) {to_arr[index] = from_arr[index];}
}
// 按位获取某个数对应的计数序列的索引值。
unsigned _getDigitByPlace(int num, const int place) {num /= place;num = num - num / 10 * 10;return num + 9;
}
void radixSort(int *array, const unsigned length) {unsigned radixs[RADIXS_SIZE] = {0}; /* initialize array with 0. */unsigned radix = 0;int *tmp_array = calloc(length, sizeof(int));unsigned index = 0;unsigned size = _maxSizeOfItem(array, length);int place = 1;for (unsigned count = 0; count < size; count++) {// 按位开始计数排序。for (index = 0; index < length; index++) {radix = _getDigitByPlace(array[index], place);radixs[radix] += 1;}for (index = 1; index < RADIXS_SIZE; index++) {radixs[index] = radixs[index] + radixs[index - 1];}for (index = 0; index < length; index++) {radix = _getDigitByPlace(array[length - index - 1], place);radixs[radix] -= 1;tmp_array[radixs[radix]] = array[length - index - 1];}// 将完成计数排序后的序列 复制回原数组。_copyArray(tmp_array, array, length);// 重置计数序列。for (index = 0; index < RADIXS_SIZE; index++) {radixs[index] = 0;}// 下一个位。place *= 10;}free(tmp_array);
}
http://www.yayakq.cn/news/131762/

相关文章:

  • 哪些专业能建网站wordpress企业商城主题
  • 产品推广的网站怎么做连云港建设公司网站
  • 广东南电建设集团网站chatgpt网址
  • 网站图片优化的概念整个网站建设中的关键步骤是
  • 企业网站建设哪家优惠旅游网站反链怎么做
  • 外贸网站建设 深圳pinterest图片wordpress
  • 用云做网站wordpress 百家主题
  • wordpress 微信 无标题网站seo方案设计
  • 北京网站开发费用自己做的网站上传到
  • 网站怎么做分类聚合网站建设和网站优化哪个更重要
  • 北京西站地址亚马逊购物网站
  • 无锡高端网站设计开发外贸网站和普通网站
  • 网站设计的工作内容制作注册会员的网站
  • 公司网站建设的目的和意义百度指数查询平台
  • 信用徐州网站建设情况云南网站建设找天软
  • 怎么开发个人网站租用海外服务器的网站有域名吗
  • 哪个网站可以做体育主播个人演讲比赛ppt模板
  • 长春手机模板建站网页浏览器缩略词
  • 网站建设高职考题目公司注册网上查询
  • 工 投标做哪个网站好科技企业网站制作
  • 电子商务网站开发参考文献大城县建设局网站
  • 天水企业网站建设淘宝运营培训视频
  • 手机怎么建网站链接网站灰色 代码
  • 做网站驻马店响应式网站案例源码
  • 阿帕奇建设网站博客重庆网站建设的公司哪家好
  • 影视制作南昌seo
  • 做外卖的网站上海网站建设设计公司排名
  • 怎样增加网站流量物流网络名词解释
  • 建设美食网站如何注册域名及网站
  • 百度网盘做存储网站企业方案