算法
文章平均质量分 87
ageovb
这个作者很懒,什么都没留下…
展开
-
【算法】十大排序算法(带注释)
术语稳定排序:相同的两个元素,排序前后顺序不变,用于两个排序关键字的情况,如对价格升序的同时销量也升序。非稳定排序:相同的两个元素,排序前后顺序可能发生改变,如快速排序、希尔排序、选择排序、堆排序(快些选堆)。原地排序:无需额外存储空间,直接在原数组上进行排序,所以会修改原数组。非原地排序:需要利用额外的存储空间来辅助排序。时间复杂度:算法执行所消耗的时间。空间复杂度:算法执行所消耗的存储空间。一、选择排序:选择最小元素与首元素交换首先,找到数组中最小的那个元素;其次,将它和数组的.原创 2021-02-13 16:57:16 · 290 阅读 · 0 评论 -
【算法】算法模板
文章目录约定一、二分查找(BinarySearch)模板 1:while (left <= right)模板 2:while (left < right),推荐使用示例二、广度优先搜索(Breadth First Search,BFS)三、深度优先搜索(Depth First Search,DFS)约定nums 为一个升序数组,我们把待查找区间的左边界下标设为 left,右边界下标设为 right,中间位置下标设为 mid。一、二分查找(BinarySearch)详细请查看:【算法】二原创 2020-05-14 20:59:36 · 254 阅读 · 0 评论 -
【LeetCode】200. 岛屿数量(BFS | DFS)
题目:200. 岛屿数量public class NumIslands_200 { public static void main(String[] args) { char[][] grid = { { '1', '1', '1', '1', '0' }, { '1', '1', '0', '1', '0' }, { '1', '1', '0', '0', '0' },原创 2020-05-14 16:41:30 · 193 阅读 · 0 评论 -
【LeetCode】1095. 山脉数组中查找目标值(二分查找)
题目:1095. 山脉数组中查找目标值public class FindMountainArray_1095 { public static void main(String[] args) {// int[] array = { 1, 3, 5, 4, 3, 2, 1 };// int[] array = { 1, 2, 3, 4, 5, 3, 1 }; int[] array = { 0, 1, 2, 4, 2, 1 }; int target = 3; MountainAr原创 2020-05-13 11:11:38 · 237 阅读 · 0 评论 -
【算法】二分查找(Java 版)
文章目录简介约定一、模板1:while (left <= right)1、思路:在循环体内部查找元素(解决简单问题时有用),即考虑下一轮目标元素应该在哪个区间2、图解3、代码实现二、模板2:while (left < right),推荐使用1、思路:在循环体内部排除元素(解决复杂问题时非常有用),即考虑中间元素 nums[mid] 在什么情况下不是目标元素2、图解3、代码实现三、模板3:while (left + 1 < right)1、与模版2的区别2、优缺点3、代码实现简介二分查找原创 2020-05-11 10:01:39 · 296 阅读 · 0 评论