为什么归并排序如此有用?1.
快捷和稳定归并排序成为?一个非常棒的排序算法主要是因为它的快捷和稳定。它的复杂度即使在最差情况下都是O(n log
n)。而快速排序在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要慢4.6倍。2.容易实现#coding:utf-8def merge_so...
分类:
编程语言 时间:
2014-05-09 03:44:58
阅读次数:
386
树
学习目标
理解什么是树及使用方法 学会使用树实现映射 用列表实现树 用类和引用实现树 用递归实现树 用堆实现优先队列
树的例子
前面我们学习过栈和队列这类线性数据结构,并且体验过递归,现在我们学习另一种通用数据结构,叫做树。树在计算机科学中应用广泛,象操作系统、图形学、数据库系统、网络等都要用到树。树和他们在自然界中的表哥——植物树——非常相似,树也有根,有分枝,有叶子...
分类:
编程语言 时间:
2014-05-06 23:24:22
阅读次数:
447
欧几里得算法求最大公约数算法思想:
求p和q的最大公约数,如果q=0,最大公约数就是p;否则,p除以q余数为r,p和q的最大公约数即q和r的最大公约数。 java实现代码: 1 public
class Demo0 { 2 public static void main(String[] ...
分类:
编程语言 时间:
2014-05-06 09:20:44
阅读次数:
434
leetcode中有这么一道题,非递归来实现二叉树的遍历。二叉树的后序遍历顺序为,root->left,
root->right,
root,因此需要保存根节点的状态。显然使用栈来模拟递归的过程,但是难点是怎么从root->right转换到root。方法1:对于节点p可以分情况讨论1.
p如果是叶子...
分类:
其他好文 时间:
2014-05-04 10:39:13
阅读次数:
251
从这个小案例我学到了不少知识。这些无论如何无法从书里得来。正所谓实践出真知,学习编程需要大量实践这句话永不过时。首先:好的代码和坏的代码带来的性能上的差异很明显。好的策略可以让你的程序运行速度大大加快。而差的代码则能让你的程序直接卡死。这是我写的递归填充TreeView:
privat...
分类:
数据库 时间:
2014-05-03 22:14:34
阅读次数:
401
1
什么是递归:实现某些功能不用递归可能要几十行代码,用递归可能几行就搞定了,而且代码清晰简洁。一直以为递归也就是自己调用自己,有一个出口条件,让他停止递归,退出函数,其实的特点并非就这些。递归还有一个非常重要的特点:先进后出,跟栈类似,先递进去的后递出来。由于递归一直在自己调用自己,有时候我们很难...
分类:
其他好文 时间:
2014-05-01 22:32:03
阅读次数:
570
十进制转二进制的递归实现算法: 1 #include 2 void dectobi(int
a); 3 4 int main() 5 { 6 int i; 7 printf("please input a decimical number\n"); 8
scanf("%...
分类:
其他好文 时间:
2014-05-01 19:19:33
阅读次数:
397
以递归以及非递归实现删除单链表L中所有值为X的结点...
分类:
其他好文 时间:
2014-04-27 20:24:45
阅读次数:
755
【二分查找】
针对有序数组,性能非常好。
【时间复杂度】
logn
【代码】
#include
#include
//非递归实现二分查找
int BinarySearch1(int a[], int n, int key)
{
int left, right;
int mid;
left = 0;
right = n - 1;
while(left <= right)
...
分类:
其他好文 时间:
2014-04-27 19:42:22
阅读次数:
538