随笔分类 -  算法

摘要:插入排序 排序和查找是2个重要的算法领域,两者既有区别又有联系。 查找不一定要排序,但是排序必须查找。 因此对于排序算法,记住最好是 边查找边排序 ,不要把查找和排序分开操作。比如下面这个插入排序的例子: 一、插入排序 1、将待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排 阅读全文
posted @ 2020-04-02 10:09 friedCoder 阅读(547) 评论(0) 推荐(0)
摘要:相互递归 都知道递归对于编程的重要性,今天就来谈谈相互递归。 若2者之间存在递推关系,则可以使用相互递归。下面举2个例子。 求pi 根据公式 pi/4 = 1 1/3 + 1/5 1/7 + 1/9 ... 通常相互递归可以通过增加一个参数来抵消掉。 当知道2者之间的递推式,用相互递归实现比较简单 阅读全文
posted @ 2020-03-26 11:52 friedCoder 阅读(395) 评论(0) 推荐(0)
摘要:关于算法效率的一些思考 减少冗余计算 如果一个算法中包含了某些冗余的计算过程,那么一定有办法可以继续优化。 比如双重递归 这里 和`powerOfTwo((n+1)//2) powerOfTwo((n+1)//2) = 2 powerOfTwo(n//2)`, 同样计算出现冗余,时间复杂度达到O(2 阅读全文
posted @ 2020-03-26 11:18 friedCoder 阅读(674) 评论(0) 推荐(0)
摘要:不含括号的中缀表达式 代码实现 阅读全文
posted @ 2020-02-04 19:09 friedCoder 阅读(493) 评论(0) 推荐(0)
摘要:在计算机编程中,我们使用前缀或后缀表达式进行运算往往比中缀简单 举例示范 中缀表达式:1 + (2 + 3) × 4 5 前缀表达式: + 1 × + 2 3 4 5 后缀表达式:1 2 3 + 4 × + 5 对于前缀表达式 ,这里的前缀指的是运算符号前缀, = 可见连括号都省了。 运算过程 编程 阅读全文
posted @ 2020-02-01 11:44 friedCoder 阅读(1861) 评论(0) 推荐(0)