首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
基准值专题
为何快速排序算法在左右都等于pivot基准值时还要进行一次交换?
前言: 快排作为世界十大经典算法之一,其重要性就不再多谈了。 我在学习快排过程中有一个很大的疑惑是为什么在进行从左到右和从右到左的扫描时,如果左右都等于pivot基准值还要进行一次交换。这其实是因为一些其他场景的处理导致的一些没法避免的小问题。下面我们详细分析他真正想处理的问题是什么。 注意:快排有非常多的写法,我们只能针对一段代码中的扫描和什么时候停止扫描进行元素交换的逻辑进行分析。不能说本
阅读更多...
【链表】-Lc86-基于基准值拆分链表(bigHead, bigTail, smallHead, smallTail)
写在前面 最近想复习一下数据结构与算法相关的内容,找一些题来做一做。如有更好思路,欢迎指正。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.代码 写在后面 一、场景描述 以给基准值 x,将链表分割成 2 部分,所有小于 x 的结点排在大于或等于 x 的结点之前。请返回重新排列后的链表的头指针。 注意: 分割以后保持原来的数据顺序不变。 示例:9-
阅读更多...