算法分析之分治法总结(二) 》的相关内容

艾格瑞哲姆攻击第二波,有兴趣的人便来战吧!

嗯嗯,我想大家都知道二叉排序树是怎么回事吧?而且大家也都知道二叉树的前序、中序、后序遍历是怎么一回事吧?不知道的人自己回去翻书。OK,那么现在题目是这样的: 引用已知有一棵二叉排序树,其中保存了 n 个互不相同的元素,且左子树中的元素小于根小于右子树中的元素。现在给你这棵二叉排序树的前序遍历序列,请你给出一个算法能够把这棵二叉排序树重新构造起来。具体实现不拘,用伪码说明也可以,但是要求: 1、 ...
by Elminster 2005-08-31 浏览 (8847) 回复 (44) 关键字:

排序研究一

  排序是数据结构中重要的一个部分,也是在实际开发中最易遇到的问题之一,当然了,你也可以不考虑这些排序的算法,直接把要排序的数据insert到数据库中,用数据库的order by 再select一下,也能产生排序结果,不过,开发一个好的系统,性能同样很重要。   在一堆数据中,是比较的执行耗时多,还是复制交换的执行耗时比较多,大量数据比较时,是否会有内存限制等等,在综合这些因素后,我们选择适当的 ...
by jerryinside 2006-11-06 浏览 (12217) 回复 (20) 关键字: java

二维点集的凸包及其直径(1)

前言:因为前几天做了一个有关凸包的题,并答应crackerwang写个blog解释一下我的算法.因为我比较懒的原因,一直拖到现在才写.预计一共有两篇,第一篇介绍求二维点集凸包的O(N*logN)时间复杂度的算法.第二篇介绍求凸包直径的O(N)时间复杂度的算法. 下面首先给出http://acm.tju.edu.cn/toj/showp2847.html该题的C++代码,本文将使用Java代码来描 ...
by Eastsun 2007-06-21 浏览 (4865) 回复 (11) 关键字: 凸包 graham 水平排序

[探讨]通过实例再讨论TDD

在《测试驱动开发》(Kent Beck)的附录B,Kent Beck用了两页纸的篇幅,演示了一次完全以测试驱动的方式,开发计算斐波纳契数列。 先简短的抄一下代码,再谈谈我的看法。 第一个测试与第一次的代码 [code:1]public void testFibonacci() assertEquals(0,fib(0)); } ...
by 庄表伟 2004-07-30 浏览 (20598) 回复 (40) 关键字:

排序算法一览

虽然现有的开发组件中对排序算法已经有很好的实现,但是通过研究这些算法的思路,对我们思维能力的提高还是很有帮助的,以下都以升序为例,总结如下。   1.冒泡排序, 最简单也最常用的一种(^_^不复习的情况下,笔试遇到排序问题,我只能记住它),思想是:每次将数组前N个中最大(升序)或最小(降序)的数交换到数组 底部,每次数组大小N--,再进行如此操作,直到所有的数都已排序即N=1。这样循 ...
by andyu2008 2007-11-23 浏览 (395) 回复 (0) 关键字: 排序 排序算法

JAVA中的各种排序以及性能比较

先来看看性能的比较,再看看具体的思路的实现。  性能比较   时间复杂度空间复杂度稳定1插入排序O(n2)1√2希尔排序O(n2)1×3冒泡排序O(n2)1√4选择排序O(n2)1×5快速排序O(Nlogn)O(logn)×6堆排序O(Nlogn)1×7归并排序O(Nlogn)O(n)& ...
by kenan161621 2008-03-22 浏览 (112) 回复 (0) 关键字:

数组第k小的元素

要求复杂度在O(n) kua方法: 使用分治策略,类似与快速排序的方法,先对数组分组,然后判断第k小的元素应该在哪个分组 然后递归该分组,最后求的第k小的元素 /* 使用分段的思想求第k小的数(减治法) 如:第1小的数是最小的数 思想:对于一个数组a[0...n-1],分段成a[0...s-1],a[s],a[s+1...n-1] 分组后,a[0...s-1]里面的元素都小于等于a[s]; ...
by loveofgod 2008-02-06 浏览 (210) 回复 (0) 关键字:

[转]排序算法一览

基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列。作为排序依据的数据项称为“排序码”,也即数据元素的关键码。为了便于查找,通常希望计算机中的数据表是按关键码有序的。如有序表的折半查找,查找效率较高。还有,二叉排序树、B-树和B+树的构造过程就是一个排序过程。若关键码是主关键码,则对于任意待排序序列,经排序后 ...
by loveofgod 2008-02-12 浏览 (230) 回复 (0) 关键字:

复习一下排序算法

复习了一下排序算法。当年学数据结构的时候学的是头大脑袋蒙;现在依然蒙,但不像以前蒙的那么厉害了。 package algorithm.sort; public class Sort { private static int[] list = {7,3,4,1,9,2,8,5,6,0,5}; /** * 冒泡排序, O(n^2) */ private static voi ...
by metaphy 2008-03-25 浏览 (133) 回复 (0) 关键字: 排序

骑士聚会(《程序员》的算法擂台)

在8×8的棋盘上分布着n个骑士,他们想约在某一个格中聚会。骑士每天可以像国际象棋中的马那样移动一次,可以从中间向8个方向移动,请你计算n个骑士的最早聚会地点和要走多少天,要求尽早聚会,且n个人走的总步数最少,先到聚会地点的骑士可以不再移动等待其他的骑士。 从键盘输入n(0<n<=64),然后一次输入n个其实的初始位置xi,yi(0<=xi,y<=7)。屏幕输出以空格分割的三 ...
by snowind9 2007-09-06 浏览 (972) 回复 (16)

D语言的性能不一定比Java强

public class Main { private static int fib(int n){ if(n==0 || n==1) return 1; else{ return fib(n-1)+fib(n-2); } } public static void main(String[] args){ for(int i=0; ...
by fxsjy 2007-11-30 浏览 (1964) 回复 (15)

数据结构的实现(持续完整中)

节点类 package graph; public class GraphNode { public GraphNode link; public int info; }
by leon_a 2007-06-25 浏览 (1255) 回复 (19)

一些乱七八糟的东西

堆排序(利用最大堆) package heap; import java.math.BigInteger; /** * 最大堆最小堆性质: * 完全二叉树 * left=2i; * right=2i+1; * 最大堆:除根节点外,子节点<父节点 * 最小堆:除根节点外,子节点>父节点 * 堆排序算法复杂度:o(n*lgn) * * @au ...
by leon_a 2007-08-30 浏览 (443) 回复 (7)

菜鸟提问题

发现一个挺有意思的事情。废话不多说,直接上代码。 int main(char[][] argv) { const char[] stringA = "Hello"; // 在默认代码段申请一块只读内存 char[] stringB = stringA; // stringB保存的内存地址跟stringA并不一致 printf("stringA's A ...
by Colorful 2007-05-30 浏览 (872) 回复 (11)

推荐知识库条目

Comming soon