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

政务网站的建设原则wordpress 手机悬浮

政务网站的建设原则,wordpress 手机悬浮,vue.js做静态网站,做财经比较好的网站文章目录1 堆排序的概念2 堆排序基本思想3 堆排序步骤图解说明4 堆排序的代码实现1 堆排序的概念 1) 堆排序是利用堆这种数据结构而设计的一种排序算法#xff0c;堆排序是一种选择排序#xff0c;它的最坏#xff0c;最好#xff0c;平均时间复杂度均为 O(nlogn)#xf… 文章目录1 堆排序的概念2 堆排序基本思想3 堆排序步骤图解说明4 堆排序的代码实现1 堆排序的概念 1) 堆排序是利用堆这种数据结构而设计的一种排序算法堆排序是一种选择排序它的最坏最好平均时间复杂度均为 O(nlogn)它也是不稳定排序。 2) 堆是具有以下性质的完全二叉树每个结点的值都大于或等于其左右孩子结点的值称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值的大小关系。 3) 每个结点的值都小于或等于其左右孩子结点的值称为小顶堆 4) 大顶堆举例说明 5) 一般升序采用大顶堆降序采用小顶堆 2 堆排序基本思想 堆排序的基本思想是 1) 将待排序序列构造成一个大顶堆 2) 此时整个序列的最大值就是堆顶的根节点。 3) 将其与末尾元素进行交换此时末尾就为最大值。 4) 然后将剩余 n-1 个元素重新构造成一个堆这样会得到 n 个元素的次小值。如此反复执行便能得到一个有序 序列了。 可以看到在构建大顶堆的过程中元素的个数逐渐减少最后就得到一个有序序列了. 3 堆排序步骤图解说明 步骤一 构造初始堆。将给定无序序列构造成一个大顶堆一般升序采用大顶堆降序采用小顶堆)。 原始的数组 [4, 6, 8, 5, 9] 1) .假设给定无序序列结构如下 此时我们就将一个无序序列构造成了一个大顶堆。 步骤二 将堆顶元素与末尾元素进行交换使末尾元素最大。然后继续调整堆再将堆顶元素与末尾元素交换 3) .再将堆顶元素 8 与末尾元素 5 进行交换得到第二大元素 8. 再简单总结下堆排序的基本思路 1).将无序序列构建成一个堆根据升序降序需求选择大顶堆或小顶堆; 2).将堆顶元素与末尾元素交换将最大元素沉到数组末端; 3).重新调整结构使其满足堆定义然后继续交换堆顶元素与当前末尾元素反复执行调整交换步骤直到整个序列有序。 4 堆排序的代码实现 package sort;import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date;/*** author Andy* email andy.gsqqq.com* date 2023/2/19 12:48:43* desc 堆排序*/public class HeapSort {public static void main(String[] args) {//要求将数组进行升序排序int arr[] {4, 6, 8, 5, 9};// 创建要给 80000 个的随机的数组 // int[] arr new int[8000000];for (int i 0; i 5; i) {arr[i] (int) (Math.random() * 800); // 生成一个[0, 8000000) 数}System.out.println(排序前);Date data1 new Date();SimpleDateFormat simpleDateFormat new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String date1Str simpleDateFormat.format(data1);System.out.println(排序前的时间是 date1Str);heapSort(arr);Date data2 new Date();String date2Str simpleDateFormat.format(data2);System.out.println(排序前的时间是 date2Str);System.out.println(排序后 Arrays.toString(arr));}public static void heapSort(int arr[]) {int temp 0;System.out.println(堆排序!!);//完成我们最终代码//将无序序列构建成一个堆根据升序降序需求选择大顶堆或小顶堆for (int i arr.length / 2 - 1; i 0; i--) {adjustHeap(arr, i, arr.length);}/** 2).将堆顶元素与末尾元素交换将最大元素沉到数组末端;3).重新调整结构使其满足堆定义然后继续交换堆顶元素与当前末尾元素反复执行调整交换步骤直到整个序列有序。*/for (int j arr.length - 1; j 0; j--) {//交换temp arr[j];arr[j] arr[0];arr[0] temp;adjustHeap(arr, 0, j);}//System.out.println(数组 Arrays.toString(arr));}/*** 将一个数组(二叉树), 调整成一个大顶堆* 功能 完成 将 以 i 对应的非叶子结点的树调整成大顶堆* 举例 int arr[] {4, 6, 8, 5, 9}; i 1 adjustHeap 得到 {4, 9, 8, 5, 6}* 如果我们再次调用 adjustHeap 传入的是 i 0 得到 {4, 9, 8, 5, 6} {9,6,8,5, 4}** param arr 待调整的数组* param i 表示非叶子结点在数组中索引* param lenght 表示对多少个元素继续调整 length 是在逐渐的减少*/public static void adjustHeap(int arr[], int i, int lenght) {int temp arr[i];//先取出当前元素的值保存在临时变量//开始调整//说明//1. k i * 2 1 k 是 i 结点的左子结点for (int k i * 2 1; k lenght; k k * 2 1) {if (k 1 lenght arr[k] arr[k 1]) { //说明左子结点的值小于右子结点的值k; // k 指向右子结点}if (arr[k] temp) { //如果子结点大于父结点arr[i] arr[k]; //把较大的值赋给当前结点i k; //!!! i 指向 k,继续循环比较} else {break;//!}}//当 for 循环结束后我们已经将以 i 为父结点的树的最大值放在了 最顶(局部)arr[i] temp;//将 temp 值放到调整后的位置}}
http://www.hkea.cn/news/14459832/

相关文章:

  • php 企业网站框架济南网站制作报价
  • 网页与网站的区别和关系页游开发成本
  • 怎么做质量高的网站化妆品网站模板免费下载
  • 英雄联盟网站模板wordpress小工具自定义
  • 专业的网站建设流程全网营销老婆第一人
  • 263网站建设扬州市网站建设
  • 北京网站建设一般多少钱南宁哪个网络公司建网站好
  • 哈尔滨建站模板大全建设铝合金窗网站
  • 网页设计与网站建设...做文案策划有些网站
  • 留学网站建设免费云服务器官网
  • 网站开发大作业wordpress装修网插件
  • 单位的网站的建设关键词搜索引擎网站
  • 部门网站建设管理腾讯云注册域名dnspod
  • 做网站资料wordpress 免插件实现
  • 大品牌网站建设企业型网站有哪些特点
  • 网站审核文件网站提交工具
  • 可以做积分的网站wordpress不同分类调用不同文章
  • 宁波网站推广优化公司电话电影网站域名需要备案
  • 公益平台网站怎么做经典重庆论坛新闻论坛发展论坛
  • 用别人的电影网站做公众号wordpress字菜单
  • 陇南做网站企业门户管理系统
  • 做系统之前的网站徐州网络建站模板
  • 北京网站优化外包个人简历wps模板免费
  • 成都交易网站建设企业网站建设 阿里云
  • 百度服务器建设自己的网站建设行政主管部门相关网站
  • 重庆网站建设的培训机构深圳建筑网站建设
  • 广州中医药资源门户网站虚拟搭建wordpress
  • 品牌网站建设价格实惠网页设计与网站建设课程
  • 网站建设与管理 教材网站推广的好处
  • 谷歌推广网站教育网站如何做seo