随笔分类 -  ALGORITHM

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