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

莆田网站建设咨询IDC网站用什么软件建

莆田网站建设咨询,IDC网站用什么软件建,网站备案 万网,成都新空间装饰公司归并排序 https://articles.zsxq.com/id_g23e5o3lg87e.html 目录 归并排序算法思想命名由来算法描述sortList函数mergeSort函数 源代码 算法思想 通过将当前乱序的数组分成两个部分#xff0c;分别进行「递归调用」#xff0c;利用两个指针将数据元素以此比较#xff0c;选…归并排序 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.pierceye.com/news/877474/

相关文章:

  • 网站提交做海鱼的网站
  • 建设网站业务竞争大唯一做魅惑的网站
  • 建设学校网站的意义更换wordpress图标
  • 环保局网站如何做备案证明在线代理服务器网页版
  • 十佳网站武昌做网站哪家好
  • wordpress调用同分类最新文章seo营销网站的设计标准
  • 免费下载网站有哪些连云港网络公司排名
  • 如何迅速建企业网站毕设做网站需要什么技术准备
  • 可以做音基题的音乐网站公司网页设计怎么弄
  • 益阳营销型网站建设乌鲁木做兼职的网站
  • 如何建单位网站怎么让别人找你做网站
  • 青海建设厅职称网站建设小程序怎么挂失
  • 建设在线购物网站51zwd一起做网站广州
  • 如何制作网站图片帮忙做网站
  • 高端做网站公司网络信息安全公司
  • 手机网站图片自适应建设网站用的软件
  • wordpress postid随机苏州百度推广排名优化
  • 重庆企业网站推广服务做性的网站
  • asp.net 创建网站登陆建设银行网站异常
  • 柳州网站建设柳州wordpress 创建文集
  • 怎样把网站做成app多语言网站建设方案
  • 中国最新新闻头条南通百度网站快速优化
  • 乐清网站推广制作长沙银狐做网站
  • 做企业网站需要多久论坛网站推广方案
  • 郑州网站优化排名wordpress搭建本地博客
  • 如何获取网站域名证书刚刚北京传来重大消息
  • 找别人做淘客网站他能改pid吗现在中型公司做网站用的是什么框架
  • 泉州晋江网站建设费用海南建设银行官网招聘网站
  • 自己给公司做网站郑州工程建设信息网站
  • 单页网站建站外贸公司网站怎么设计更好