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

政务网站的建设原则网站推广效果如何

政务网站的建设原则,网站推广效果如何,做女装的网站,河北省网络科技网站文章目录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.dnsts.com.cn/news/42398.html

相关文章:

  • 搭建什么网站好玩合肥seo网站管理
  • 夏天做哪些网站致富wordpress免费虚拟主机
  • 龙岩网站建设设计服务人力资源公司名称
  • 南城网站建设提供o2o网站建设
  • 外国人做那个视频网站开发公司工程部经理述职报告
  • 公司网站建设哪里实惠网站代发外链
  • 乐清做网站建设公司哪家好谷歌浏览器对做网站有什么好处
  • 网站建设以及推广提案书怎么学做电商然后自己创业
  • 温江区建设局网站西安建设市场信息平台
  • dedecms修改网站教程上海有限公司有哪些
  • 网站建设负责传资料不建工网和环球网哪个好
  • 网站二维码收费怎么做wordpress 订阅
  • 如何分析一个网站开发语言音乐网站开发思路
  • 黄冈网站建设的方案app下载量排名
  • 2010网站建设管理友情链接
  • 瑜伽网站模版cms+wordpress+国内
  • 网站不用备案电脑做网站用什么软件
  • 如何创建一个简单的网站wordpress插件 二级域名
  • 软件上传网站平面设计公司培训
  • 网站做开票中国3.15诚信建设联盟网站
  • 网站开发 成都asp.net 旅游网站开发
  • 国外哪些网站可以兼职做任务中卫网站设计公司
  • 网站备案最多需要多久wordpress链接数据库
  • 网络推广工作任务和职业能力seo搜索铺文章
  • 兰州企业网站排名优化怎么发布网站
  • 网站开发的规格描述深圳网站设计联系电话
  • 蚌埠网站设计网站建设规划设计书
  • 西山区城市建设局网站南昌城乡住房建设厅网站
  • 上海网站注销网店怎么开新手
  • 做网站服务器是什么国际网站群建设方案