冒泡排序、插入排序和选择排序三种排序的时间复杂度都是O(n^2),我们来对比一下它们之间的性能差异。 我们随机… 继续阅读 冒泡排序、插入排序、选择排序性能对比
分类: 数据结构与算法
数据结构与算法之选择排序
选择排序(Selection Sort) 核心思想:数据分为已排序区间和未排序区间。选择排序每次会从未排序区间… 继续阅读 数据结构与算法之选择排序
数据结构与算法之插入排序
插入排序(Insertion Sort) 核心思想:将数组中的数据分为两个区间,已排序区间和未排序区间。初始已… 继续阅读 数据结构与算法之插入排序
数据结构与算法之冒泡排序
冒泡排序(Bubble Sort) 每次比较相邻的两个数的大小。一次冒泡会找出数据中的最大值,放到数组最后。n… 继续阅读 数据结构与算法之冒泡排序
数据结构与算法之递归
递归:分为递和归两个动作。简单通俗的来说,就是当前步骤发现自己处理不了,那么就“递”出去,让别人处理;每个步骤… 继续阅读 数据结构与算法之递归
单链表反转 代码示例与核心逻辑说明
单链表如何实现反转? 实现效果: null -> e1 -> e2 -> e3 反转后: n… 继续阅读 单链表反转 代码示例与核心逻辑说明
算法学习:leetcode32. 最长有效括号
题目 给定一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长的包含有效… 继续阅读 算法学习:leetcode32. 最长有效括号
算法学习:leetcode 108. 将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点… 继续阅读 算法学习:leetcode 108. 将有序数组转换为二叉搜索树
算法学习:leetcode3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 思路:这里还… 继续阅读 算法学习:leetcode3. 无重复字符的最长子串
算法学习:leetcode28. 实现 strStr()
实现 类似Java中indexOf() 函数。 给定一个 haystack 字符… 继续阅读 算法学习:leetcode28. 实现 strStr()
算法学习:leetcode27 移除元素
题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val&… 继续阅读 算法学习:leetcode27 移除元素
算法学习:leetcode26 删除排序数组中的重复项
题目: 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。… 继续阅读 算法学习:leetcode26 删除排序数组中的重复项
算法学习:leetcode21 合并两个有序链表
题目:合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节… 继续阅读 算法学习:leetcode21 合并两个有序链表
算法学习 leetcode1114题 线程按序打印
今天来看一个leetcode线程顺序同步题。 demo类: 三个不同的线程将会共用一个 Foo&nb… 继续阅读 算法学习 leetcode1114题 线程按序打印
数据结构之堆
前置知识:二叉树、完全二叉树 什么样的数据结构是堆 1、堆是一个完全二叉树; 2、堆中每个节点的值都必须大于等… 继续阅读 数据结构之堆
算法学习 leetcode 703 实时判断数据中的第K大元素
题目:实时判断数据流中的第K大元素 解这道题,适合的数据结构就是小顶堆了。 小顶堆是一个二叉树数据结构,在小顶… 继续阅读 算法学习 leetcode 703 实时判断数据中的第K大元素
算法学习:leetcode7 整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例: java版 解法一思路… 继续阅读 算法学习:leetcode7 整数反转
算法学习:leetcode 2 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 … 继续阅读 算法学习:leetcode 2 两数相加
算法学习:leetcode 1 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 … 继续阅读 算法学习:leetcode 1 两数之和
算法练习:用堆栈实现队列
题目:用堆栈实现队列或用队列实现堆栈 我们首先要知道堆栈和队列各自的特点: 堆栈的特点:后入先出 队列的特点:… 继续阅读 算法练习:用堆栈实现队列