LeetCode75学习计划-栈/队列
算法解题思路很多会借鉴于题解区,如果侵权请联系删除。
本章节知识点为栈/队列。
算法解题思路很多会借鉴于题解区,如果侵权请联系删除。
本章节知识点为栈/队列。
感觉自己的算法太过于薄弱了,正好在 LeetCode 上发现了 LeetCode 75 学习计划,准备画一些时间把这些题目看一下,记录一下解题思路。
算法解题思路很多会借鉴于题解区,如果侵权请联系删除。
本章节知识点为数组/字符串。
最近在学习Golang,就把之前写过的排序算法拿golang复刻一下吧。
实现思路可以看python篇哈。
动态规划是刷题过程中的常见算法,有难有易,简单的如斐波那契数列问题很容易找到规律,难一些的就很容易钻牛角尖了,而背包问题又是动态规划的一个典型问题,这里就拿比较典型的01背包与完全背包问题做一下记录。
之前做过常用排序算法的python实现,因为python的语法简单,个人喜欢用python去练习算法题目,毕竟自己是以JavaScript作为主力开发语言的,python仅仅知道基础语法,所以以后准备用JavaScript去练习算法。先把常用排序算法用JavaScript重新实现一遍吧。
本文仅提供冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序的Python实现。
在最开始先列出上述排序算法的时间复杂度:
冒泡排序bubbleSort()复杂度O(n^2)
选择排序 selectionSort() 复杂度O(n^2)
插入排序 insertionSort() 复杂度O(n^2)
希尔排序 shellSort() 复杂度O(n)与O(n^2)之间
归并排序 mergeSort() 复杂度O(nlog n) 需要额外使用一倍的存储空间
快速排序 quickSort() 复杂度O(nlog n) 不需要额外使用存储空间