随笔分类 - ALGORITHM
摘要:接下来要讲的是我自己曾经做的一个项目中的一个小内容。对于数学表达式的括号检查。比如数学表达式(3+2)*sin(30+((2+1)))+sum[1,(cos(2)),3]是一个正确的表达式,其中一部分是对其表达式中括号的检查。现在给你一个字符串s,如何判断它的括号是否匹配。我们采用压栈的处理方式。遍...
阅读全文
摘要:堆排序算法的时间复杂度为O(nlgn).在堆排序算法中,我们使用的是最大堆。(1)初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1..n]建成最大堆。此时堆的根结点是最大元素,且该元素位于数组A[1]。接着将A[1]与A[n]互换,则可以将A[1..n]中的最大值置于A[n]。(...
阅读全文
摘要:对于包含N个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n2)的排序算法。虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中的隐藏因子非常小。另外,它还能够进行原址重排,甚至在虚存环境中...
阅读全文

浙公网安备 33010602011771号