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

展览馆网站建设方案书网站开发建设哪家好

展览馆网站建设方案书,网站开发建设哪家好,微信公众号的网站,wordpress管理员角色目录 1. 前言 1.1 什么是基数排序⭐⭐⭐ 1.2 执行流程⭐⭐⭐⭐⭐ 2. 代码实现⭐⭐⭐ 3. 性能分析⭐⭐ 3.1 时间复杂度 3.2 空间复杂度 1. 前言 一个算法#xff0c;只有理解算法的思路才是真正地认识该算法#xff0c;不能单纯记住某个算法的实现代码#xff01; 1.…目录 1. 前言 1.1 什么是基数排序⭐⭐⭐ 1.2 执行流程⭐⭐⭐⭐⭐ 2. 代码实现⭐⭐⭐ 3. 性能分析⭐⭐ 3.1 时间复杂度 3.2 空间复杂度 1. 前言 一个算法只有理解算法的思路才是真正地认识该算法不能单纯记住某个算法的实现代码 1.1 什么是基数排序⭐⭐⭐ 1通过键值得各个位的值将要排序的元素分配至一些桶中达到排序的作用 2基数排序法是属于稳定性的排序基数排序法是效率高的稳定排序法 3基数排序是桶排序的扩展 注意我们这里谈论的数组都是Int类型代码实现的基数排序也是针对正整数的排序 详细说明 基数排序的思想是“多关键字排序”。基数排序有两种实现方式第一种叫作最高位优先即先按最高位排成若干子序列再对每个子序列按次高位排序。举扑克牌的例子就是先按花色排成4个子序列再对每种花色的13张牌进行排序最终使所有扑克牌整体有序。第二种叫作最低位优先这种方式不必分成子序列每次排序全体关键字都参与。最低位可以优先这样进行不通过比较而是通过“分配”和“收集”。还是扑克牌的例子可以先按数字将牌分配到13个桶中然后从第一个桶开始依次收集再将收集好的牌按花色分配到4个桶中然后还是从第一个桶开始依次收集。经过两次“分配”和“收集”操作最终使牌有序。 我们这里介绍的是按最低位优先 1.2 执行流程⭐⭐⭐⭐⭐ 图示说明 文字说明  初始桶如图8 - 5 所示 2. 代码实现⭐⭐⭐ 代码的实现分为三大步 第一步先找到这组数组的最大值max因为最大值关乎到后续找“位”的次数。如果最大值是123那么只需要找3“位”也就是需要分装3次。如果最大值是1234那么需要找4“位”也就是需要分装4次。 第二步创建一个队列数组其元素的类型是队列用LinkedList来表示一个桶就是一个队列队列满足桶的要求所以选用队列来充当桶。如果传进来的数组元素类型是int型我们可以确定只需要10个桶10个桶分别代表0、1、2、3、4、5、6、7、8、9。 第三步分装和收集。这里面又分为两小步分装、收集。具体实现看代码。 public static void radixSort(int[] array){//1. 先确定最大值方便后期遍历int max 0;for(int x : array) {max Math.max(max,x);}//2. 创建队列因为我们这里是四10个数字所以创建10个队列使用LinkedList来代替队列//此时创建的queueList里面的元素类型都是QueueInteger也就是指针他们执行的区域还没有开辟需要使用new 挨个去开辟QueueInteger[] queueList new LinkedList[10];//为里面的元素赋值给一个队列for(int i 0;i queueList.length;i){queueList[i] new LinkedList();}//3. 开始分类和收集/*123 / 1(divider) % 10 3123 / 10(divider) % 10 2123 / 100(divider) % 10 1*///最大值的作用体现了限制了divider的移动//divider不断地往1,10,100直至大于max扩大for(int divider 1;divider max;divider * 10){//3.1 分桶也是分类for(int x : array){int index x / divider % 10;queueList[index].offer(x);}//3.2 收集还原原来数组int i 0;//定义原来数组的下标for(QueueInteger queue1 : queueList){while(queue1.peek() ! null){array[i] queue1.poll();i;}}}}public static void main(String[] args) {int[] a {10,9,8,7,6,5,4,3,2,1};Sort.radixSort(a);for (int x : a) {System.out.print(x );}} 3. 性能分析⭐⭐ 3.1 时间复杂度 假设有一个长度为N数组元素的类型都是int型的数组需要排序其中最大元素是x它的位数是k位那么时间复杂度就是: ① 需要分装的次数 位数k乘以总的数组长度N因为每分装一次就相当于遍历一下数组 O(k*N) ② 需要收集的次数极端情况在第一次分装的时候都在一个桶内遍历桶的个数也就是N  每个桶的peek次数 桶的总长度10  O(10 N) 总的时间复杂度为 3.2 空间复杂度 基数排序需要10个桶每个桶又是一个队列10个桶又需要分桶装N个数组元素。 则空间复杂度为
http://www.hkea.cn/news/14382545/

相关文章:

  • 网站怎么建立视频版面设计素材
  • 企业只有建立自己的网站长寿网站建设
  • 做网站和做程序一样吗广告公司网站主页设计
  • 网页建站网站申请网页设计师培训班大连
  • 网站建设与开发考试宝洁公司网站建设现状
  • 乐清网站优化北京定制网站
  • 培训网站建设公司河北招投标网招标公告
  • 石家庄快速网站搭建广州app制作公司
  • 企业宣传网站多大主机菏泽营销网站建设
  • 单页网站搭建做推文网站
  • 如何做公司网站优化wordpress添加分类无响应
  • 如何在网上做自己的网站做一件代发的网站
  • 如皋网站开发文本编辑器 网站
  • 网站建设合理性中关村科技租赁
  • 企业做网站一般要多少钱免费装修设计app
  • 做百度网站那家好网站建设设计图软件
  • 红色大气网络公司企业网站源码_适合广告设计济南建设工程招标网
  • 在线设计海报的网站北京住总第一开发建设有限公司网站
  • wordpress网站投放广告塘沽做网站公司
  • 创建网站怎么创wordpress说说功能
  • 上海外贸网站建设百度软件市场
  • 嘉兴网站排名公司同时做几个网站互相链接
  • 网站免费正能量安全自己建设的网站有管理后台的登录
  • 松原做招聘的网站有哪些南京做网站优化公司
  • 青浦做网站公司wordpress首页调用指定分类
  • pc端自适应网站模板福建住房和建设网站密码忘记
  • 好的网站具备什么条件上传网站图片处理
  • 网站建设所需资料及费用虹口网站开发
  • 怎么给网站做 360快照淘宝开店铺网站怎么做
  • 建设一个网站平台凡科建站登陆