算法练习
文章平均质量分 83
little-peter
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多个维度解析常见的排序算法及其稳定性
1.基本概念 1.1排序的稳定性(重要) 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。 (经验)如果当前这个排序,在排序的过程中没有发生跳跃式的交换,那么我们认为这个排序是稳定的排序,比如堆排,就是不稳定的。稳定的排序也可被实现为不稳定的排序,但不稳定的则不可以变成稳定的排序。 现实生活中的应用 2.常用排序总览 3.插入排序 3.1直接插入排序-原理 整个区间被分为 有序区间 无序区间 每次选择无序区间的第一个元素,在有序区间内选择合适的原创 2021-11-01 22:33:07 · 1943 阅读 · 0 评论 -
打家劫舍、斐波那契数、整数拆分(动态规划)
看视频总结的·动态规划的基本步骤: 1.dp数组的定义和下标。 2.递推公式。 3.dp数组如何初始化,初始化也需要注意。 4.确定遍历顺序,比较考究.。 5.举例推导dp数组。 用简单的题目来加深对以上方法的理解。 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n .原创 2021-09-01 20:30:09 · 454 阅读 · 1 评论 -
关于双指针方法的一些运用
有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100] class Solution { public int[] sortedSquares(int[] nums) { //1.暴力解法,这个时间复杂度是 O(n + nl.原创 2021-08-20 16:52:06 · 250 阅读 · 1 评论 -
算法学习:二分查找
二分查找是非常基础的算法,但其并不简单,有很多细节需要掌握,因此自己结合资料进行了一些整理,在看完这些后,建议做几道给出的习题这样效果会更好。二分查找细节。 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 ..原创 2021-08-19 00:58:34 · 176 阅读 · 0 评论
分享