算法与数据结构全阶班-左程云版(二)基础阶段之3.归并排序和快速排序(下)
2.快速排序Partition过程:给定一个数组arr,和一个整数num。请把小于等于num的数放在数组的左边,大于num的数放在数组的右边;要求额外空间复杂度O(1),时间复杂度O(N)。思路如下:Partition过程升级版(荷兰国旗问题):给定一个数组arr...
算法与数据结构全阶班-左程云版(二)基础阶段之3.归并排序和快速排序(上)
前言本文主要介绍了两种排序,归并排序和快速排序,归并排序有递归和非递归2种方式实现,快速排序的升级版为荷兰国旗问题。1.归并排序归并排序:1)整体是递归,左边排好序+右边排好序+ merge让整体有序;2)让其整体有序的过程里用了排外序方法;3)利用master公式来求解时间复杂度&...
算法与数据结构全阶班-左程云版(二)基础阶段之2.链表、栈、队列、递归行为、哈希表和有序表(下)
用栈实现队列:也是用两个栈来实现,包括push栈和pop栈,如下:遵循的原则:pop栈为空时,才能将数据导入到pop栈中;push栈导数据到pop栈时,一次导完。实现如下:static class TwoStackQueue { private final Sta...
算法与数据结构全阶班-左程云版(二)基础阶段之2.链表、栈、队列、递归行为、哈希表和有序表(上)
引言本文主要介绍了一些常用的数据结构,包括链表、栈、队列、递归、哈希表和有序表。1.链表结构单链表节点结构:class Node { public int value; public Node next; public Node(int data) { value = data; } }...
算法与数据结构全阶班-左程云版(二)基础阶段之1.复杂度、对数器、二分法和异或运算(下)
4)局部最小值问题一个无序数组,任意两个相邻元素都不相等,找到一个局部最小值。package complexity01; /** * @author Corley * @date 2021/10/4 9:45 * @description LeetCodeAlgorithmZuo-complexit...
算法与数据结构全阶班-左程云版(二)基础阶段之1.复杂度、对数器、二分法和异或运算(上)
引言本文主要介绍了数据结构与算法的基本概念,包括算法评价指标、复杂度、对数器、二分法和异或运算。1.概述评价算法优劣的核心指标时间复杂度(流程决定)额外空间复杂度(流程决定)常数项时间(实现细节决定)常见的常数时间的操作:常见的算术运算(+、-、*、/、%等)常见的位运...
面试之算法基础系列(1)最长子字符串、字符串同构
1.最长子字符串题目为:【题目】给定一个字符串,给定一个数字k ( 0< k ≤ 字符串长度),输出最长的包含k个不同字符子串的长度。【Example】“cbca”, k=2,输出最长的包含2个不同字符子串的长度。答案:3最容易想到的是暴力解法,就是遍历求出字符串的所有子串,并找出...
【数据结构基础】之图的介绍,生动形象,通俗易懂,算法入门必看(下)
2️⃣深度优先搜索🍀(1)深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直...
【数据结构基础】之图的介绍,生动形象,通俗易懂,算法入门必看(上)
一、图的基本概念1️⃣图的定义定义: 图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;其中,点通常被成为"顶点(vertex)“,而点与点之间的连线则被成为"边或弧”(edege)。通常记为,G=(V,E)。2️⃣图的种类根据边是否有方向,将图可以划分为&....
【数据结构基础】之树的介绍,生动形象,通俗易懂,算法入门必看
一、树的概念1.树的定义树(Tree) 是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m&g...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。