![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
王小扣
IT
展开
-
10 分钟看懂快速排序
学习算法的最好方式就是敲一遍代码原创 2020-03-30 11:53:30 · 385 阅读 · 0 评论 -
3 分钟学会归并排序
解题思路:分解:将待排序分成两部分,对每部分进行排序 合并:将排序好的部分进行合并 递归: 递推公式:merge_sort(p..q) = merge(merge_sort(p..r),merge_sort(r+1..q)) 终止条件:p>=q,分组中元素只剩下 1 个 算法实现public class Solution { // 归并排序 pub...原创 2020-03-29 23:48:21 · 275 阅读 · 0 评论 -
3 分钟学会选择排序
算法笔记最好画图,达到短时间就可以理解算法思路的目的原创 2020-03-29 21:40:14 · 288 阅读 · 0 评论 -
3 分钟学会插入排序
思路将待排元素插入到有序数组中的合适位置,后边的元素依次向后移动 将数组分为有序与待排两个区域 待排区从 1 开始,依次取出每个元素插入有序区,一共进行 n-1 趟 从有序区后面开始比较,有序元素>待排元素,有序元素则向后移动实现public class Solution { public static void insertSort(int[] arra...原创 2020-03-29 21:02:21 · 169 阅读 · 0 评论 -
3分钟学会冒泡排序
理清思路,实现起来就简单多了原创 2020-03-29 19:54:36 · 241 阅读 · 0 评论 -
快速排序
算法思路 选择一个数字 povit = array[low] 为关键字 目的就是为了确定关键字所在最终结果中的位置 通过遍历分区,左分区小于关键字,右分区大于关键字,关键字位置确定注意 递归时一直都是操作的array数组,分区是array的一部分,没有将分区作为一个新数组。 分区是用low和high再加上关键字位置index来计算的时间复杂度...原创 2018-07-20 16:39:54 · 105 阅读 · 0 评论 -
直接插入排序
英勇青铜算法思路 两个数组:待排序数组disorderArray和有序数组orderArray 从待排序数组中取一个数disorderArray[i] 依次和有序数组中每个数比较 小于元素orderArray[j]时 先将位置j及之后的元素向后移动一位 再插入到位置j上 一直都不小于, 则直接插入到orderArray[orderArray...原创 2018-07-20 16:41:47 · 1834 阅读 · 0 评论 -
88. 合并两个有序数组
文章目录题目描述解法1:for参考优化 while题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,...原创 2019-08-08 09:33:02 · 418 阅读 · 0 评论