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

自己做的网站怎么做二维码商标注册网上申请流程25个步骤

自己做的网站怎么做二维码,商标注册网上申请流程25个步骤,兰州网站设计教程,施工企业包括哪些1.堆排序思路 最近趁着有点时间#xff0c;稍微复习了一下数据结构相关内容#xff0c;温习了一下堆排序#xff0c;做一下记录。 首先我们复习一下什么是堆#xff1a; 堆是具有以下性质的完全二叉树#xff1a;每个结点的值都大于或等于其左右孩子结点的值#xff0c…1.堆排序思路 最近趁着有点时间稍微复习了一下数据结构相关内容温习了一下堆排序做一下记录。 首先我们复习一下什么是堆 堆是具有以下性质的完全二叉树每个结点的值都大于或等于其左右孩子结点的值称为大顶堆或者每个结点的值都小于或等于其左右孩子结点的值称为小顶堆。 堆排序的基本思想如下 将待排序序列构造成一个大顶堆此时整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆这样会得到n个元素的次小值。如此反复执行便能得到一个有序序列了。 更具体的过程与图示见参考文献1不再重新画图。 2.java实现 下面我们用java来实现一下堆排序的过程。 public class HeapSort {public static void swap(int[] arr, int i, int j) {int tmp arr[i];arr[i] arr[j];arr[j] tmp;}public static void adjust(int[] arr, int start, int end) {// 左右子节点int left start * 2 1;int right start * 2 2;int largest start;if (left end arr[left] arr[largest]) largest left;if (right end arr[right] arr[largest]) largest right;// 交换数据并继续调整if (largest! start) {swap(arr, start, largest);adjust(arr, largest, end);}}// 从第一个非叶子结点开始调整注意顺序是从下往上public static void buildHeap(int[] arr) {for(int i arr.length / 2 - 1; i 0; i--) {adjust(arr, i, arr.length - 1);}}// 先构建堆此时堆顶为最大元素交换到此时数组的最后一位。public static void heapSort(int[] arr) {buildHeap(arr);for(int i arr.length - 1; i 0; i--) {swap(arr, 0, i);adjust(arr, 0, i - 1);}}public static void main(String[] args) {int[] arr {1, 3, 5, 6, 2, 4, 6, 9, 8, 10, 7};heapSort(arr);for(int i 0; i arr.length; i) {System.out.print(arr[i] );}} } 关键的步骤以及作用都已经在代码中进行了注释再结合参考文献1就可以容易理解。 3.求topK 求一个无序序列的topK是个经典问题。这个经典问题的经典解法就包括堆排序。 public static void findTopK(int[] arr, int k) {PriorityQueueInteger pq new PriorityQueue();for (int i 0; i k; i) {pq.offer(arr[i]);}for (int i k; i arr.length; i) {int current pq.peek();if (arr[i] current) {pq.poll();pq.offer(arr[i]);}}Integer[] ret pq.toArray(new Integer[k]);Arrays.sort(ret, Collections.reverseOrder());for(int i 0; i k; i) System.out.print(ret[i] );}public static void findLastK(int[] arr, int k) {PriorityQueueInteger pq new PriorityQueueInteger((Integer o1, Integer o2) - o2 - o1);for (int i 0; i k; i) {pq.offer(arr[i]);}for (int i k; i arr.length; i) {int current pq.peek();if (arr[i] current) {pq.poll();pq.offer(arr[i]);}}Integer[] ret pq.toArray(new Integer[k]);Arrays.sort(ret);for(int i 0; i k; i) System.out.print(ret[i] );}public static void main(String[] args) {int[] arr {1, 3, 5, 10, 8, 6, 7, 9, 2, 4};int k 3;findTopK(arr, k);System.out.println();findLastK(arr, k);}上面的代码分别找到最大的三个数与最小的三个数。 PriorityQueue 是java中的优先队列默认就是小顶堆实现。求top3最大值时候用小顶堆即可。如果求top3最小值则使用大顶堆。 上面代码运行最后的输出 10 9 8 1 2 3 参考文献 1.https://www.cnblogs.com/chengxiao/p/6129630.html
http://www.w-s-a.com/news/383878/

相关文章:

  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱
  • wordpress做门户seo培训价格
  • 百度关键词优化软件如何wordpress站点地图优化
  • 使用cnnic证书的网站营销公司有哪些
  • 做电子杂志用什么网站如何将网站生成二维码