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

公司网站维护怎么维护什么是搜索引擎竞价推广

公司网站维护怎么维护,什么是搜索引擎竞价推广,django企业级问答网站开发,短视频代运营合作方案1. 简述 假设待排序数组为 int array[], 数组长度为n。 主要是利用堆的性质。对于升序排序#xff0c;使用最大堆。 首先#xff0c;建堆#xff0c;使用递归后根序遍历得方法#xff0c;通过交换元素#xff0c;保证根元素比孩子元素大。 第1趟#xff0c;堆顶…1. 简述     假设待排序数组为 int array[], 数组长度为n。    主要是利用堆的性质。对于升序排序使用最大堆。    首先建堆使用递归后根序遍历得方法通过交换元素保证根元素比孩子元素大。    第1趟堆顶元素array[0]与array[n-1]交换保证array[n-1]的数值正确根据array[0]新的数值更新堆。    第2趟堆顶元素array[0]与array[n-2]交换保证array[n-2]的数值正确根据array[0]新的数值更新堆。    ···     第n-1趟堆顶元素array[0]与array[1]交换保证array[1]的数值正确根据array[0]新的数值更新堆。 2. 复杂度     平均时间复杂度为O(N*logN)空间复杂度为O(1)。 3. 代码    void make_heap(int array[], int n, int node) { // 自底向上构建堆  int left  2 * node 1;  int right  2 * node  2;  if(left  n-1) return;  else if(right  n-1) { // 堆是完全的二叉树所以此时不需要递归    if(array[node]  array[left]) {      swap(array[node], array[left]);    }  }  else {    make_heap(array, n, left);    make_heap(array, n, right);    if(array[node]  array[left]  array[right]  array[left]) {      swap(array[node], array[left]);    }    else if(array[node]  array[right]  array[left]  array[right]) {      swap(array[node], array[right]);    }  }}void update_heap(int array[], int n, int node) { // 自顶向下更新堆  int left  2 * n  1;  int right  2 * n  2;  if(left  n-1) return;  else if(right  n-1) {    if(array[node]  array[left])       swap(array[node], array[left]);  }  else {    if(array[node]  array[left]  array[right]  array[left]) {      swap(array[node], array[left]);      update_heap(array, n, left);    }    else if(array[node]  array[right]  array[left]  array[right]) {      swap(array[node], array[right]);      update_heap(array, n, right);    }  }}void heap_sort(int array[], int n) {  make_heap(array, n, 0);  for(int in; i1; i--) {    swap(array[i], array[0]);    update_heap(array, n, node);  } }     实际上堆的构建和更新都可以使用非递归的方式实现对于堆的构建需要首先找到最后一个有孩子的节点array[k]然后从array[k]一直更新到array[0]即可其中的kn/2。k的求法如下假设k存在2*k1n或者2*k2n对于第一种情况kn/2对于第二种情况kn/2-1。对于堆的更新就更简单了只要从array[0]开始选择一条通路一直向下更新直到没有孩子了为止。   值得注意的是对于下标从0开始的数组k号节点的孩子节点分别是2*k1和2*k2。 而对于下标从1开始得数组k号节点的孩子节点分别是2*k和2*k1。    堆排序属于选择排序实际上就是利用最大堆这个数据结构每次选择一个剩余元素中最大的元素交换到合适的位置上去。 4. 参考资料     维基百科-堆排序    http://en.wikipedia.org/wiki/Heapsort
http://www.zqtcl.cn/news/697450/

相关文章:

  • 如何创建一个论坛网站免费域名解析平台
  • 国外经典手机网站设计单位做网站有哪些
  • 网站备案 优帮云百度提交入口网址截图
  • 广州五羊建设官方网站富阳区住房和城乡建设局网站
  • 网站代理怎么做的wordpress有什么缺点
  • 哪些网站可以做免费外贸Wordpress首图自动切换
  • 建网站几个按钮公司黄页企业名录在哪里查
  • 网站建设类外文翻译游戏开科技软件免费
  • 黄山家居网站建设怎么样济南在线制作网站
  • 东莞电子产品网站建设营销型网站推广方式的论文
  • 如何寻找做网站的客户聚名网查询
  • 甘肃制作网站凡科快图官网登录入口在线
  • discuz网站建设教学视频教程哪些大型网站有做互联网金融
  • jquery动画特效网站物流网站前端模板下载
  • 上海集团网站建设网站都是用什么语言写的
  • 地铁公司招聘信息网站网站推广页面 英语
  • 廊坊做网站的企业哪家好做网站app价格多少钱
  • wap网站制作当阳网站建设电话
  • 服装电子商务网站建设3000字中装建设有限公司
  • 河南卓越建设工程有限公司网站怎么做垂直门户网站
  • 接单做网页的网站手机端app开发公司
  • 古田路9号设计网站在线制作图片拼图
  • 深圳网站开发ucreator售后服务 网站建设
  • 做网站的语北京比较好的it公司
  • 长春建站模板制作php项目开发案例源码
  • 绍兴seo外包公司山东网站建设优化
  • php做网站知乎境外网站icp备案
  • 做seo网站图片怎么优化地坪漆东莞网站建设技术支持
  • wordpress theme forest济南优化网站排名
  • 简述网站的制作步骤合肥网站建设需