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

汽配公司的网站要怎么做/西安百度竞价托管

汽配公司的网站要怎么做,西安百度竞价托管,最好的手机网站建设,wordpress上好用的编辑器常用的排序算法属快速排序和堆排序应用的最多,快速排序的递归版本要受限制于栈空间溢出问题的困扰,无法处理大量数据排序(但是对于外存上的数据进行排序,什么排序算法猜算是适合的?也许mergeSort会是一种选择&#xff…

常用的排序算法属快速排序和堆排序应用的最多,快速排序的递归版本要受限制于栈空间溢出问题的困扰,无法处理大量数据排序(但是对于外存上的数据进行排序,什么排序算法猜算是适合的?也许mergeSort会是一种选择,但是这个要再考虑)。而其他的排序包括插入排序,归并排序,冒泡排序,选择排序,相较于这两种排序算法,或者在时间或者空间上消耗要更大。

HeapSort算法是一个就地的排序算法,时间复杂度和quickSort一样,为O(N*LogN),同时和快速排序一样,是不稳定的排序(貌似ShellSort,QuickSort,HeapSort这三种最高效的排序都是不稳定的,但是InsertSort,BubbleSort是稳定的)。并且在实现上,除了在保持堆结构的过程当中需要使用递归(由于是和深度有关的,所以递归的次数很少,而且应该是可以做尾递归优化的,是不是?),要了解堆排序首先要了解堆得定义。

Heap在计算机领域有两个主要的解释:

1.Heap是一种数据结构,在逻辑上为一颗完全二叉树,在物理上表现为一个数组。

2.Heap是一个程序执行空间当中的可动态申请的内存区域。

在堆排序当中,我们当然是选择第一种解释,堆的性质主要表现在如下的两个方面(以最大堆为例):

1.堆的任何一个节点的都要大于它的后裔

2.堆是一颗完全二叉树

 

如果把堆看成一种数据结构,那么对于定义抽象数据类型来说,堆的常用操作包括:

1.HeapIdf():保持堆得性质

2.BuildHeap():建立初始堆

3.Insert():插入新的元素进入堆

4.Update():更新堆元素的key并保持堆结构

5.get():获取堆顶部的元素

6.delete():删除堆顶部的元素并保持堆结构

 

但是对HeapSort来说,只有1,3是用到的,具体的HeapSort算法,我用C实现的版本如下:

#include <stdio.h>
#include "heapsort.h"//data:heap data
///size: the size of the heap
//i: the node neeeded to be adjustedint parent(int i){return (i-1)/2;
}int left(int i){return (i*2+1);
}int right(int i){return (i*2+2);    
}void maxHeapIdf(int data[],int size,int i){int largerId;int temp;int l,r;l=left(i);r=right(i);largerId=i;if(l<size && data[largerId]<data[l]){largerId=l;}if(r<size && data[largerId]<data[r]){largerId=r;}if(largerId!=i){temp=data[i];data[i]=data[largerId];data[largerId]=temp;maxHeapIdf(data,size,largerId);}
}void buildMaxHeap(int data[],int size){int i;for(i=(size-2)/2;i>=0;i--){maxHeapIdf(data,size,i);}}void heapSort(int data[],int size){int i;int temp;buildMaxHeap(data,size);for(i=size-1;i>=0;i--){temp=data[i];data[i]=data[0];data[0]=temp;maxHeapIdf(data,i,0);}
}void print(int A[],int heap_size)
{int i;for(i = 0; i < heap_size;i++){printf("%d ", A[i]);}printf("\n");
}int main(){int data[]={5,2,3,7,6,4,1};heapSort(data,7);print(data,7);
}

 

Heap结构除了可以应用到排序上,还是作为优先级队列的一种选择,优先级队里可以用于比如进程调度等场合。

 

转载于:https://www.cnblogs.com/dongyuanshi/p/3559897.html

http://www.lbrq.cn/news/1044415.html

相关文章:

  • 地推拉新app推广平台有哪些/怎么做优化关键词
  • 深圳市政府网站建设公司/seo难不难学
  • 高邑网站建设/教育培训机构
  • wordpress密文/产品seo怎么优化
  • 爱企业 查询入口/哈尔滨seo关键词优化
  • 建立自我/推广优化工具
  • 官网建站模板库/石家庄seo结算
  • 建站论坛/广告营销平台
  • 开发商城网站开发/seo网络优化专员
  • 新建网站如何推广/如何优化seo
  • 网站做seo推广方案/网站代发外链
  • 建设机械网站热线电话/无货源电商怎么做
  • 在哪了做网站/博客seo优化技术
  • 优秀茶叶网站设计/网站设计公司哪家专业
  • 无锡游戏网站建设公司/人员优化方案
  • 做设计私活的网站/市场营销主要学什么
  • 备案网站名称更改/seo一个月赚多少钱
  • 建设金融网站/全国疫情最新消息今天新增
  • c语言开发网站后端/世界杯排名
  • 凡科建网站怎么做阴影立体/可以免费打开网站的软件
  • 网站建设方案及报价单/qq群引流推广平台
  • wordpress分页太丑/厦门seo哪家强
  • 长沙网站排名技术/长春seo优化
  • 做网站用哪个eclipse/百度广告电话号码是多少
  • 南昌优易科 网站建设/山东疫情最新消息
  • 地推网/莱芜seo
  • 杭州论坛网/二十条优化措施全文
  • 各类专业网站建设/最近的电脑培训学校
  • 珠海网站建设有限公司/网站设计报价方案
  • 美国淘宝代购网站建设/郑州厉害的seo顾问公司
  • Day 9-2: Transformer翻译实例演示 - 翻译的基础设施
  • [创业之路-541]:经营分析会 - 企业的经营分析会,研发负责人负责提供哪些信息?
  • sqli-labs-master/Less-51~Less-61
  • 华为实验-VLAN基础
  • 力扣面试150(51/100)
  • 【Python 高频 API 速学 ③】