c++学习
sky_9900
这个作者很懒,什么都没留下…
展开
-
五种简单排序算法的比较
冒泡法:这是最原始,也是众所周知的最慢的算法了。时间复杂度为O(n*n)。当数据为正序,将不会有交换,空间复杂度为O(1)。优点:代码简单,算法稳定。缺点:时间复杂度高。 template<typename T> void bubbleSort(T arr[], int n){ for (int i = 0; i < n; i++){ ...原创 2019-04-23 22:07:51 · 332 阅读 · 0 评论 -
Tromino(更准确地说是“右Trominio”)是一个由棋盘上的三个1x1方块组成的L型骨牌。
Tromino(更准确地说是“右Trominio”)是一个由棋盘上的三个1x1方块组成的L型骨牌。我们的问题是,如何用Tromino覆盖一个缺少了一个方块(可以在棋盘上的任何位置)的2^n*2^n棋盘。除了这个缺失的方块,Tromino应该覆盖棋盘上的所有方块,Tromino可以任意转向但不能有重叠。为此问题设计一个分治算法。(PS:具体可以参考下图) 解法:分治思想每次将2^n*2^n的正...原创 2019-04-23 22:08:28 · 1283 阅读 · 0 评论 -
分治螺钉与螺帽问题
假设我们有n个直径各不相同的螺钉以及n个相应的螺母。我们一次只能比较一对螺钉和螺母,来判断螺母是大于螺钉、小于螺钉还是正好适合螺钉。然而,我们不能拿两个螺母做比较,也不能拿两个螺钉做比较。我们的问题是要找到每一对匹配的螺钉和螺母。为该问题设计一个算法,它的平均效率必须属于集合O(nlogn)。 解法:类似于快速排序的思想,第一次选出一枚螺钉与所有螺帽比较,并将比此螺钉大的螺帽放到左侧,比此螺钉小...原创 2019-04-23 22:01:25 · 4135 阅读 · 5 评论