算法练习
文章平均质量分 83
little-peter
这个作者很懒,什么都没留下…
展开
-
多个维度解析常见的排序算法及其稳定性
1.基本概念1.1排序的稳定性(重要)两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。(经验)如果当前这个排序,在排序的过程中没有发生跳跃式的交换,那么我们认为这个排序是稳定的排序,比如堆排,就是不稳定的。稳定的排序也可被实现为不稳定的排序,但不稳定的则不可以变成稳定的排序。现实生活中的应用2.常用排序总览3.插入排序3.1直接插入排序-原理整个区间被分为有序区间无序区间每次选择无序区间的第一个元素,在有序区间内选择合适的原创 2021-11-01 22:33:07 · 836 阅读 · 0 评论 -
打家劫舍、斐波那契数、整数拆分(动态规划)
看视频总结的·动态规划的基本步骤:1.dp数组的定义和下标。2.递推公式。3.dp数组如何初始化,初始化也需要注意。4.确定遍历顺序,比较考究.。5.举例推导dp数组。用简单的题目来加深对以上方法的理解。斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n .原创 2021-09-01 20:30:09 · 366 阅读 · 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 · 159 阅读 · 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 · 114 阅读 · 0 评论