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

网站开发用什么字体一般外贸网站模板建设

网站开发用什么字体一般,外贸网站模板建设,用ps怎么做网站步骤,怎样办一个网站目录 1 概念 2 堆的概念 2.1小根堆 2.2大根堆 3堆的存储方式​​​​​​​ 4、堆的创建 4.1堆向下调整 5、时间复杂度 6、堆的插入#xff08;向上调整#xff09; 7、堆的删除 8、PriorityQueue的特性 9、堆排序 1 概念 我们知道的队列#xff0c;队列是一…目录 1 概念 2 堆的概念 2.1小根堆 2.2大根堆  3堆的存储方式​​​​​​​ 4、堆的创建  4.1堆向下调整 5、时间复杂度 6、堆的插入向上调整 7、堆的删除 8、PriorityQueue的特性  9、堆排序 1 概念 我们知道的队列队列是一种先进先出(FIFO)的数据结构但有些情况下操作的数据可能带有优先级一般出队 列时可能需要优先级高的元素先出队列该中场景下使用队列显然不合适比如在手机上玩游戏的时候如果有来电那么系统应该优先处理打进来的电话初中那会班主任排座位时可能会让成绩好的同学先挑座位。 JDK1.8 中的 PriorityQueue 底层使用了堆这种数据结构而堆实际就是在 完全二叉树 的基础上进行了一些调整。 2 堆的概念 2.1小根堆 2.2大根堆  3堆的存储方式 从堆的概念可知 堆是一棵完全二叉树因此可以层序的规则采用顺序的方式来高效存储 4、堆的创建  4.1堆向下调整 对于集合 { 27,15,19,18,28,34,65,49,25,37 } 中的数据如果将其创建成堆呢 向下过程 ( 以小堆为例 ) 1. 让 parent 标记需要调整的节点 child 标记 parent 的左孩子 ( 注意 parent 如果有孩子一定先是有左孩子 ) 2. 如果 parent 的左孩子存在即 :child size 进行以下操作直到 parent 的左孩子不存在 parent 右孩子是否存在存在找到左右孩子中最小的孩子让 child 进行标 将 parent 与较小的孩子 child 比较如果 parent小于较小的孩子 child 调整结束 否则交换parent 与较小的孩子 child 交换完成之后 parent 中大的元素向下移动可能导致子树不满足对的性质因需要继续向下调整即parent child child parent*21; 然后继续步骤 2 。 //创建堆 public void creatHeap(){int preheap;//每次的根节点for ( preheap(usesize-1-1)/2;preheap0;preheap--){signHeap(preheap,usesize);}}//向下调整为大根堆为例private void signHeap(int preheap,int end){//向下调整int childpreheap*21;//preheap左子树下标while (childend){if(child1endelem[child]elem[child1])child;//现在child指向孩子节点的最大值if (elem[preheap]elem[child]){swap(preheap,child);preheapchild;childchild*21;}else break;}}private void swap(int i,int j) {int tmp elem[i];elem[i] elem[j];elem[j] tmp;} 5、时间复杂度 因为堆是完全二叉树而满二叉树也是完全二叉树此处为了简化使用满二叉树来证明 ( 时间复杂度本来看的就是近似值多几个节点不影响最终结果) 6、堆的插入向上调整 堆的插入总共需要两个步骤 1. 先将元素放入到底层空间中(注意空间不够时需要扩容) 2. 将最后新插入的节点向上调整直到满足堆的性质 public void offer(int key){if(isFull()) Arrays.copyOf(elem,elem.length*2);//扩容elem[usesize]key;usesize;//调整为大根堆,向上调整siftUp(usesize-1);}//向上调整private void siftUp(int child) {int parent (child-1)/2;while (child 0) {//或者parent0if(elem[child] elem[parent]) {swap(child,parent);child parent;parent (child-1)/2;}else {break;}}} 7、堆的删除 1. 将堆顶元素对堆中最后一个元素交换 2. 将堆中有效数据个数减少一个 3. 对堆顶元素进行向下调整 public int poll() {int tmp elem[0];swap(0,usesize-1);usesize--;signHeap(0,usesize);//0下标元素和最后一个元素换之后只有0下标还不是大根堆调整return tmp;} 8、PriorityQueue的特性  1. 使用时必须导入PriorityQueue所在的包即import java.util.PriorityQueue; 2. PriorityQueue中放置的元素必须要能够比较大小不能插入无法比较大小的对象否则会抛出 ClassCastException异常放入自定义元素类可以让该类继承Comparable并重写ComparTo方法或者写比较器例 class Imp implements ComparatorInteger{Overridepublic int compare(Integer o1, Integer o2) {return o2.compareTo(o1);//大根堆} } public class Test1 {public int[] smallestK(int[] arr, int k) {//堆的默认比较时小根堆我们建立大根堆需要比较器PriorityQueueInteger pnew PriorityQueueInteger(new Imp()); 3. 不能插入null对象否则会抛出NullPointerException 4. 没有容量限制可以插入任意多个元素其内部可以自动扩容 5. 插入和删除元素的时间复杂度为 6. PriorityQueue底层使用了堆数据结构 7. PriorityQueue默认情况下是小堆---即每次获取到的元素都是最小的元素 9、堆排序 见下一篇博客介绍所有排序
http://www.pierceye.com/news/459454/

相关文章:

  • 贵溪市城乡建设局网站手机网站推荐
  • wordpress多站点的路径深圳龙岗区宝龙街道
  • 做外贸免费发布产品的网站装修软件app哪个好
  • 网站注册系统医疗器械分类目录2021
  • 珠海建设网站百度收录有什么好处
  • 二手网站专业做附近人的有吗免费申请网站永久
  • 校园二手市场网站开发网站文章优化流程方案
  • 手机网站的必要性衡水网站设计费用
  • 厦门市建设安全管理协会网站网站登录模板下载
  • 江苏启安建设集团有限公司网站wordpress图标字体不显示不出来
  • 网络营销网站规划建设实训作业免费云空间
  • 杭州建设网站官网想学做宝宝食谱上什么网站
  • 用自己服务器做网站乡镇信息公开网站建设制度
  • 网站建设平台简介电子商务网站模版
  • 广州做网站怎么样安监网站如何做紧急预案备案
  • 自己做的网站怎样才有网址浏览oa软件多少钱一套
  • 旅游电子商务网站的建设深圳华强北赛格大厦最新消息
  • 视觉设计网站建设有没有做.net面试题的网站
  • 上海资格证报名网站惠州抖音seo
  • 网页设计作品html辽宁做网站和优化哪家好
  • 做门户网站 cms山东济南网站建设优化
  • 网站美工怎么做wordpress论坛化插件
  • 怎样建设自己的视频网站首页电子商务网站开发教程论文6
  • 推荐一个做照片书的网站湛江网站建设招聘
  • 厦门建网站网址ai自动设计logo
  • 蓝色织梦cms企业网站模板全站源码招聘类网站如何做
  • 郑州建设银行网站wordpress数据库怎么设置
  • 电子商务网站实例php网站建设哪家好
  • 网站开发课程报告心得简单的网页设计作品欣赏
  • 网站建设用什么系统华为弹性云做网站