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

什么软件制作图片百度seo正规优化

什么软件制作图片,百度seo正规优化,宁波江北区建设局网站,南京市的网站是由那几家公司做的归并排序 https://articles.zsxq.com/id_g23e5o3lg87e.html 目录 归并排序算法思想命名由来算法描述sortList函数mergeSort函数 源代码 算法思想 通过将当前乱序的数组分成两个部分,分别进行「递归调用」,利用两个指针将数据元素以此比较,选…

归并排序

https://articles.zsxq.com/id_g23e5o3lg87e.html

目录

  • 归并排序
    • 算法思想
    • 命名由来
    • 算法描述
      • sortList函数
      • mergeSort函数
    • 源代码

算法思想

通过将当前乱序的数组分成两个部分,分别进行「递归调用」,利用两个指针将数据元素以此比较,选择相对较小的元素放进「辅助数组」中,再将辅助数组的数据放回「原数组

命名由来

归并=递归+合并

算法描述

问题描述

leetcode第148题
给你链表的头结点 head,请将其按 升序 排列并返回排序后的链表。

sortList函数

先看sortList,此函数的目的是对链表进行归并排序

ListNode* sortList(ListNode* head) {if (head == nullptr)                   // 1return nullptr;else if (head->next == nullptr)        // 2return head;ListNode *slow = head, *fast = head;   // 3ListNode *pre = nullptr;               while (fast != nullptr){pre = slow;slow = slow->next;fast = fast->next;if (fast)fast = fast->next;}ListNode *tmp = pre->next;pre->next = nullptr;                   //4return mergeSort(head, tmp);           //5}

(1) 当链表没有元素的时候不需要排序,直接返回null;
(2) 当链表只有一个元素的时候也不需要排序,返回本身即可;
(3) 我们用快慢指针来找到链表的中间节点,并将链表分为两部分,分别是左半部分和右半部分;
(4) 此时我们就完成了对一个链表的切割,左边是以head为头结点的链表,右边则是以tmp指针为头结点的链表
(5) 调用 mergeSort 函数进行合并排序。

mergeSort函数

 ListNode* mergeSort(ListNode* a, ListNode* b){a = sortList(a);b = sortList(b);                 // 1ListNode* head = new ListNode(0); ListNode* tmp = head;            // 2head->next = nullptr;while (a || b)                   // 3{if (a == nullptr){tmp->next = b;break;}else if (b == nullptr){tmp->next = a;break;}else if (a->val < b->val){tmp->next = a;a = a->next;}else if (a->val >= b->val){tmp->next = b;b = b->next;}tmp = tmp->next;tmp->next = nullptr;}return head->next;                // 4}

(1) a 和 b 分别表示左边部分和右边部分,将 a 和 b 分别传入 sortList 函数中进行排序(递归调用);
(2) 创建一个新的头节点 head,以及一个临时节点 tmp 用于构建合并后的链表;
(3) 通过比较 a 和 b 的值,逐个选择较小的节点接入到新链表中,直至其中一个链表为空。
(4) 最后,返回合并后链表的头节点(即 head->next),并注意释放之前创建的虚拟头节点。

源代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {ListNode* mergeSort(ListNode* a, ListNode* b){a = sortList(a);b = sortList(b);ListNode* head = new ListNode(0);ListNode* tmp = head;head->next = nullptr;while (a || b){if (a == nullptr){tmp->next = b;break;}else if (b == nullptr){tmp->next = a;break;}else if (a->val < b->val){tmp->next = a;a = a->next;}else if (a->val >= b->val){tmp->next = b;b = b->next;}tmp = tmp->next;tmp->next = nullptr;}return head->next;}
public:ListNode* sortList(ListNode* head) {if (head == nullptr)                   //return nullptr;else if (head->next == nullptr)        // return head;ListNode *slow = head, *fast = head, *pre = nullptr;while (fast != nullptr){pre = slow;slow = slow->next;fast = fast->next;if (fast)fast = fast->next;}ListNode *tmp = pre->next;pre->next = nullptr;return mergeSort(head, tmp);}
};
http://www.yayakq.cn/news/13562/

相关文章:

  • 怎么做家具网站常德网站开发服务
  • 网站域名可以自己做吗阳江网站建设推广
  • 网站建设公司注册沧州网络公司电话
  • 哪些网站适合用自适应通过网站如何做海外贸易
  • 齐河专业企业网站建设在网站上做招聘版面
  • 如果在工商局网站上做股权质押建设领域信用系统网站
  • 企业网站模板建站费用长沙seo结算
  • 和网站开发公司如何签合同昆明小程序开发多少钱
  • 网站前台后台哪个好电脑怎样做网站
  • 备案号 不放在网站首页推荐手机网址
  • wordpress在这个站点注册自己做服务器网站
  • 国内建网站知名企业成品app软件大全
  • 设计师一般上什么网站郓城网页设计
  • 做网站页面对PS切图wordpress po mo
  • 做网站后台要学什么炫酷的网页特效
  • 网站建设好找工作吗wordpress主叶SEO优化
  • 深圳手机网站定制开发搜索引擎营销ppt
  • 长春代做网站深圳做网站建设开发
  • 网站备案上传照片几寸代理自贸区注册公司
  • 手机网站微信链接怎么做企业网站软件
  • 互联网网站文化wordpress自动上传至cdn
  • 传奇网站传奇怎样做淘宝商品链接导航网站
  • 晋江网站建设分类信息网
  • 北京高端网站制作有哪些做微博长图网站
  • 最个人网站搜索引擎网站开发
  • 重庆做网站嘉兴公司电子商务是干什么的
  • 不是网站开发语言的是养车网站开发
  • 个人网站怎么做微商网站更改公司需要重新备案吗
  • 北京网站建设 网络安全做网站需要考虑哪些
  • 做淘宝客网站制作教程视频网站建设作