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

做网站代码审计哪个工具比较好网络科技公司简介范文

做网站代码审计哪个工具比较好,网络科技公司简介范文,漯河网站建设lhwzzz,网站备案核验系统Day 76 题目描述思路 初次思路:题目进阶要求O(nlogn)的时间复杂度,但这类排序算法对于链表难以实现,所以我先选择了使用选择排序入手,具体做法如下: 使用快慢指针遍历链表,beg指针记录已排序的位置&#xf…

Day 76

题目描述

在这里插入图片描述

思路

初次思路:题目进阶要求O(nlogn)的时间复杂度,但这类排序算法对于链表难以实现,所以我先选择了使用选择排序入手,具体做法如下:

  1. 使用快慢指针遍历链表,beg指针记录已排序的位置,min和bemin记录这一轮最小节点及其前一个节点
  2. 如果beg的下一个不是空,说明没有遍历完所有链表
  3. 使用快慢指针顺序遍历,比较fast指向值和min比较,比它小记录fast和slow指针
  4. 遍历一轮结束后,进行交换即可
/**1. Definition for singly-linked list.2. public class ListNode {3.     int val;4.     ListNode next;5.     ListNode() {}6.     ListNode(int val) { this.val = val; }7.     ListNode(int val, ListNode next) { this.val = val; this.next = next; }8. }*/
class Solution {public ListNode sortList(ListNode head) {if(head==null){return head;}ListNode m=new ListNode();m.next=head;ListNode beg=m;ListNode slow=m;//慢指针ListNode fast=m.next;//快指针ListNode min=m.next;ListNode bemin=m;while(beg.next!=null){int mins=50001;while(fast!=null){if(fast.val<mins){mins=fast.val;min=fast;bemin=slow;}slow=slow.next;fast=fast.next;}//取到这一轮最小的值了bemin.next=min.next;min.next=beg.next;beg.next=min;beg=beg.next;slow=beg;fast=slow.next;}return m.next;}}

可惜超时了
在这里插入图片描述
分析一下,还是选择排序太慢了 O(n方),所以还是得从那几个O(nlogn)的算法入手
优化思路:我们可以采取归并排序的方式来解决这个问题

  1. 将链表不断分为左右两段,分离的函数为 getMiddle(ListNode head),做法不赘述了,前面的题目实现过。
  2. 最后链表会分为一段只有一个数字(分割的最终阶段)
  3. 开始合并,合并算法是归并算法(前面也做过)
  4. 最后合并成一个有序链表
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode sortList(ListNode head) {// 递归终止条件if (head == null || head.next == null) {return head;}// 找到中间节点并分割链表ListNode mid = getMiddle(head);ListNode rightHead = mid.next;mid.next = null; // 断开左右链表// 递归排序左右两部分ListNode left = sortList(head);ListNode right = sortList(rightHead);// 合并有序链表return merge(left, right);}// 使用快慢指针找到链表的中间节点private ListNode getMiddle(ListNode head) {if (head == null) return null;ListNode slow = head;ListNode fast = head.next;while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}return slow;}// 合并两个有序链表private ListNode merge(ListNode l1, ListNode l2) {if (l1 == null) return l2;if (l2 == null) return l1;ListNode dummy = new ListNode(0);ListNode tail = dummy;while (l1 != null && l2 != null) {if (l1.val < l2.val) {tail.next = l1;l1 = l1.next;} else {tail.next = l2;l2 = l2.next;}tail = tail.next;}// 处理剩余节点if (l1 != null) tail.next = l1;if (l2 != null) tail.next = l2;return dummy.next;}
}
http://www.dtcms.com/wzjs/781179.html

相关文章:

  • 广源建设集团有限公司网站个人备案网站做淘宝客可以用吗
  • 毕业设计做系统和网站有什么区别网站制作公司网站建设公司
  • 网站制作报价被哪些因素影响免费推广引流平台推荐
  • 竞猜网站建设安徽休宁建设厅网站
  • 网站制作和推广lv官网移动端开发流程
  • 合肥建设银行招聘网站四川省住房和城乡建设厅网站无法进入
  • 网站备案法规成功的网站应该具备哪些要素
  • 做网站的图片要求大小重庆潼南网站建设价格
  • 网站建设合作流程图怎样做google网站
  • 北京网站开发公司哪里济南兴田德润优惠吗杨浦企业网站建设
  • 官方模板关键字生成的代码添加在网站的什么地方?火车头 wordpress4.9
  • 怎样建设自己网站wordpress还有人在用吗
  • 添加网站关键词如何做分类网站信息营销
  • 做食品企业网站的费用jquery网站发展历史时间轴
  • 您在工信部门备案网站获取的icp备案号网站开发使用什么技术
  • 17网站一起做网店普宁轻纺城网页介绍怎么写
  • 太原网站建设招聘c 网站做微信支付功能
  • 做网站需要先申请域名网站制作教程切片
  • 一个网络空间如何做两个网站二维码生成器在线制作图片
  • 钢结构平台设计网站优化主要怎么做
  • 创造网站软件网站费做进什么科目
  • 学校网站开发实际意义抚松做网站
  • 菏泽做网站推广刚刚发生了一件大事
  • 网站建设招标公告网站建设行业发展史
  • 如何在工信部网站注册深圳开发网站的公司哪家好
  • 中小企业电商网站建设的重要性wordpress建站是什么意思
  • 山西做网站的公司哪个好旅游网站开发目的
  • 做好一个网站需要多久苏州做商城网站
  • 营销型网站建设排名世界政务网站绩效评估指标体系建设
  • 江苏企业建网站排名优化外链在线发布工具