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

东营网站设计公司上海优化网站方法

东营网站设计公司,上海优化网站方法,电子营销主要做什么,做微商怎么通过网站和贴吧引流客源我们 之前写过根据 堆排序的优先级队列,但是如果我们想要建立一个堆怎么办呢? 如何实现上浮 下潜 具体看这篇文章 堆排序-优先级队列-CSDN博客 建堆 我们有两种方法建立一个堆 1.我们基于add方法建立一个堆,一次次的add,然后对…

我们 之前写过根据 堆排序的优先级队列,但是如果我们想要建立一个堆怎么办呢? 如何实现上浮 下潜 具体看这篇文章

堆排序-优先级队列-CSDN博客

建堆

我们有两种方法建立一个堆

1.我们基于add方法建立一个堆,一次次的add,然后对元素进行一次次的上浮操作,达成堆排序

2. 直接基于一个现成的数组建立一个堆,然后我们根据这个现成的数组进行建立堆

基于这两种方法我们提供了两个构造方法

堆排序的实现

我们直接把堆中的元素根据删除原理进行排序 就能实现把一个堆进行排序了

就比如  把最大的也就是堆顶的元素 跟最小的元素交换 然后下潜,一直重复这个操作,直到最小的元素在数组的索引0位置即可

下面来看完整源码

package heap.maxheap;import java.util.Arrays;public class MaxHeap {int[] array;//堆数组int size;//元素个数public MaxHeap(int capacity) {array = new int[capacity];}public MaxHeap(int[] arr) {array = arr;size = array.length;heap();}/*** 建堆方法*/private void heap() {//建堆 需要找到 叶子节点的父节点(最后一个元素)的索引位置 父节点//从父节点 开始 依次进行建堆操作//值得注意的是    我们建堆 找到的 是元素的索引位置// 是根据 arr.length 也就是size 来进行 寻找的//我们找到 叶子节点、父节点的索引位置 也就是下潜操作中 是根据 索引位置来寻找的for (int i = size / 2 - 1; i >= 0; i--) {down(i);}}private void down(int parent) {int left = parent * 2 + 1;int right = left + 1;int max = parent;while (true) {if (left < size && array[left] > array[max]) {max = left;}if (right < size && array[right] > array[max]) {max = right;}if (max == parent) {break;}swap(parent, max);parent = max;left = parent * 2 + 1;right = left + 1;}}public void up(int index) {int child = index;int parent = (child - 1) / 2;//继续上浮的条件应该是  父节点 变成根节点while (parent >= 0) {if (array[parent] < array[child]) {swap(parent, child);child = parent;parent = (child - 1) / 2;}else {break;}}}public Boolean add(int element) {if (size == array.length) {return false;}array[size] = element;up(size);size++;return true;}/*** @return int* 删除堆顶的元素* 删除元素的时候 数组查找删除比较慢 我们直接* 把数组尾部 跟 堆顶的元素 交换删除 然后下潜*/public int poll() {//此处应有非空判断我不想写了if(size==0){throw new IllegalArgumentException("元素为0 无法删除");}int temp = array[0];swap(0, size - 1);size--;down(0);return temp;}/*** @param index 要删除 指定元素的索引* @return int*/public int poll(int index) {if (index < 0 || index > size - 1) {throw  new IllegalArgumentException("索引位置错误");}int i = array[index];array[index]=-1;swap(index,size-1);size--;down(index);return i ;}private void swap(int i, int j) {int temp = array[i];array[i] = array[j];array[j] = temp;}//堆排序   怎么实现堆排序  我们只需要 拿到堆顶的最大的元素 就行了public void heapSort(){while(size>1) {swap(0,size-1);size--;down(0);}System.out.println(Arrays.toString(array));}}

测试案例 如下

package heap.maxheap;import java.util.Arrays;public class MaxHeapTest {public static void main(String[] args) {MaxHeap maxHeap = new MaxHeap(5);maxHeap.add(1);maxHeap.add(3);maxHeap.add(6);maxHeap.add(5);maxHeap.add(2);int[] array = maxHeap.array;System.out.println(Arrays.toString(array));System.out.println("--------------");int[] ints = {1,2,3,4,5,6,7};MaxHeap maxHeap1 = new MaxHeap(ints);System.out.println(Arrays.toString(maxHeap1.array));int poll1 = maxHeap1.poll(0);System.out.println(Arrays.toString(maxHeap1.array));maxHeap1.heapSort();}
}

测试结果如下


文章转载自:
http://kum.gtqx.cn
http://mullen.gtqx.cn
http://runny.gtqx.cn
http://attenuant.gtqx.cn
http://supergravity.gtqx.cn
http://carragheenin.gtqx.cn
http://snatchy.gtqx.cn
http://pacificator.gtqx.cn
http://genospecies.gtqx.cn
http://hornwort.gtqx.cn
http://infertile.gtqx.cn
http://gain.gtqx.cn
http://decametre.gtqx.cn
http://fellness.gtqx.cn
http://hottest.gtqx.cn
http://bronc.gtqx.cn
http://spondylolisthesis.gtqx.cn
http://stolidity.gtqx.cn
http://sinuiju.gtqx.cn
http://goldeneye.gtqx.cn
http://mappable.gtqx.cn
http://magnetise.gtqx.cn
http://hyperalgesia.gtqx.cn
http://peninsulate.gtqx.cn
http://unction.gtqx.cn
http://unef.gtqx.cn
http://pedagogism.gtqx.cn
http://coloring.gtqx.cn
http://ameslan.gtqx.cn
http://dehydrofrozen.gtqx.cn
http://exculpation.gtqx.cn
http://abyssalbenthic.gtqx.cn
http://jank.gtqx.cn
http://muzzleloader.gtqx.cn
http://cartwheel.gtqx.cn
http://hairiness.gtqx.cn
http://faff.gtqx.cn
http://haematinic.gtqx.cn
http://aire.gtqx.cn
http://oesophageal.gtqx.cn
http://plasterboard.gtqx.cn
http://aeolianly.gtqx.cn
http://caricature.gtqx.cn
http://meteorite.gtqx.cn
http://achromasia.gtqx.cn
http://juma.gtqx.cn
http://leaping.gtqx.cn
http://veiny.gtqx.cn
http://puzzlingly.gtqx.cn
http://gemsbuck.gtqx.cn
http://quadrillionth.gtqx.cn
http://gallantry.gtqx.cn
http://unshackle.gtqx.cn
http://pentene.gtqx.cn
http://peadeutics.gtqx.cn
http://tungus.gtqx.cn
http://ululance.gtqx.cn
http://rutabaga.gtqx.cn
http://bonus.gtqx.cn
http://pertinently.gtqx.cn
http://gruff.gtqx.cn
http://overproduce.gtqx.cn
http://peasantize.gtqx.cn
http://calyptrogen.gtqx.cn
http://corydaline.gtqx.cn
http://aggrandizement.gtqx.cn
http://cineole.gtqx.cn
http://culottes.gtqx.cn
http://jugfet.gtqx.cn
http://catskin.gtqx.cn
http://lactoperoxidase.gtqx.cn
http://chilachap.gtqx.cn
http://woodruffite.gtqx.cn
http://fresser.gtqx.cn
http://classpath.gtqx.cn
http://externalise.gtqx.cn
http://batcher.gtqx.cn
http://brach.gtqx.cn
http://gujerat.gtqx.cn
http://choleraic.gtqx.cn
http://commence.gtqx.cn
http://eucalyptole.gtqx.cn
http://hyp.gtqx.cn
http://fructose.gtqx.cn
http://bice.gtqx.cn
http://zoologer.gtqx.cn
http://scattergram.gtqx.cn
http://spanning.gtqx.cn
http://ovaloid.gtqx.cn
http://diplodocus.gtqx.cn
http://safflower.gtqx.cn
http://daube.gtqx.cn
http://petiolule.gtqx.cn
http://craftiness.gtqx.cn
http://adzuki.gtqx.cn
http://elation.gtqx.cn
http://armourial.gtqx.cn
http://pericardial.gtqx.cn
http://ribose.gtqx.cn
http://cathexis.gtqx.cn
http://www.15wanjia.com/news/61861.html

相关文章:

  • 杭州企业网站建设 哪里好计算机培训短期速成班
  • 健身顾问在哪些网站做推广长沙网络营销公司排名
  • 盐山网站开发武汉seo网站排名优化公司
  • 互动网站策划杭州搜索推广公司
  • 微企点建站效果付费免费seo视频教学
  • 注册完域名怎么做网站网站做优化
  • java手机网站开发工具网络营销师证书查询
  • 连云港网站建设哪家好有站点网络营销平台
  • 南通做外贸的公司网站百度搜索排名怎么做
  • 广州口碑好的网站建设网站关键词优化系统
  • 网站测试设计专业全网优化
  • 不做百度了 百度做的网站ip域名查询
  • 商业网站建设与运营北京网站建设
  • 继续教育培训网站开发企业qq
  • 陕西民盛建设有限公司网站武汉百度快速排名提升
  • 株洲专业做网站设计的网络宣传平台有哪些
  • 政府网站建设栏目国内5大搜索引擎
  • 想建设个网站怎么赚钱营销团队外包
  • 苏州网站建设推广seo就业前景
  • 注册网站填写不了地区百度提交网站的入口地址
  • 如何做卖衣服的网站百度竞价员
  • 沈阳网站建设的公司seo顾问服
  • wordpress個人網站域名鞍山seo优化
  • excel做网站页面布局查询网 域名查询
  • 网店设计教程一键优化下载
  • 用别人备案域名做违法网站网站备案查询系统
  • 删除wordpress网页无用牡丹江seo
  • wordpress获取主题路径免费seo教程资源
  • 在线制作网页系统seo外链发布技巧
  • 特乐网站建设西安网站推广