数据结构与算法
文章平均质量分 92
阿涛的敲码时光
这个作者很懒,什么都没留下…
展开
-
4、常见的七种排序算法
常见的七种排序算法文章目录常见的七种排序算法插入类排序直接插入排序希尔排序选择类排序简单选择排序堆排序交换类排序冒泡排序快速排序归并类排序归并排序总结插入类排序直接插入排序直接插入排序算法是基于某序列已经有序排列的情况下,通过一次插入一个元素的方式按照原有排序方式增加元素。就像是给扑克牌排序,刚开始是所有的牌在桌上,而手上是空的。然后每次从桌上拿一张牌并插入到手上正确的位置。每次从桌上拿的牌都和手上的牌依次对比,找到对应的位置。最后手上的牌都是排好序的,桌上没有牌了,即所有的牌都排好序了。步骤:原创 2021-02-26 16:33:06 · 387 阅读 · 1 评论 -
3、二分查找算法学习及leetcode力扣网例题详解
二分查找文章目录二分查找概述例题求开方输入输出样例题解代码实现查找区间输入输出样例题解代码实现旋转数组查找数字输入输出样例题解代码实现概述二分查找又称为二分法或折半查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,一个长度为 O(n)的数组,二分查找的时间复杂度为O(logn)。二分查找是一种算法,其输入是一个有序的元素列表(必须是有序的),如果查找的元素包含在列表中,二分查找返回其位置,否则返回NULL。例如一个有序数组1-100,需要寻找数字60。按照遍历的方法,则需要寻找到第原创 2021-02-23 17:14:44 · 674 阅读 · 3 评论 -
2、双指针算法学习及leetcode力扣网例题详解
双指针文章目录双指针概述快慢指针左右指针滑动窗口法例题Two Sum输入输出样例题解代码实现归并两个有序数组输入输出样例题解代码实现快慢指针输入输出样例题解代码实现滑动窗口输入输出样例题解代码实现概述双指针是一种思想和技巧,并不是什么特别具体的算法。常用于线性的数据结构中,比如链表和数组,有时候也会用在图中。双指针分为快慢指针和左右指针,其中快慢指针主要用于解决链表问题,而左右指针用于解决数组问题。快慢指针顾名思义,快慢指针是指一个指针走的快,一个指针走得慢。两个指针从同一侧开始遍历数组以不同的原创 2021-02-17 16:28:58 · 1020 阅读 · 2 评论 -
1、贪心算法学习及leetcode力扣网例题详解
贪心算法案例文章目录贪心算法案例概述思路使用条件存在问题例题分配问题AssignCookies输入输出样例题解代码实现Candy输入输出样例题解代码实现区间问题Non-overlapping Intervals输入输出样例题解代码实现概述贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解。例如:小明最多能吃5个苹果,小王最原创 2021-02-14 17:44:19 · 578 阅读 · 0 评论