
算法-经典算法大全
文章平均质量分 80
csjinzhao
这个作者很懒,什么都没留下…
展开
-
河内之塔
#include void hanoi(int n, char A, char B, char C) {if(n == 1) {printf("Move sheet %d from %c to %c\n", n, A, C);}else {hanoi(n-1, A, C, B);printf("Move sheet %d from %c to %c\n", n, A,原创 2014-11-14 13:38:46 · 497 阅读 · 0 评论 -
查找无序数中最大k个数
解法一:该解法是大部分能想到的,也是第一想到的方法。假设数据量不大,可以先用快速排序或堆排序,他们的平均时间复杂度为O(N*logN),然后取出前K个,时间复杂度为O(K),总的时间复杂度为O(N*logN)+O(K). 当K=1时,上面的算法的时间复杂度也是O(N*logN),上面的算法是把整个数组都进行了排序,而原题目只要求最大的K个数,并不需要前K个数有限,也不需要后N-K原创 2015-04-23 19:32:00 · 1693 阅读 · 0 评论 -
二叉树
二叉树(Binary Tree)是每个节点最多有两个子树的树结构,常被用于实现二叉查找树和二叉堆。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。本文主要介绍了二叉树的类型与表示、遍历、复制以及线索二叉树的相关内容。二叉树的类型完全二叉树(Complete Binary Tree):在一棵二叉树中,除最后一层外,若其馀层都转载 2015-04-24 23:03:17 · 483 阅读 · 0 评论