动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java学习路径-过程篇+书籍篇.
.WebLogic UDDI Client API实例学.
.Java中鲜为人知的缺点(上).
.讲解J2EE中XML配置文件的读取处理.
.通过文件名打开文件.
.spring + hibernate 数据话持久层.
.Struts 系列之二 ------- Struts.
.Java琐碎笔记.
.Java开源技术:Eclipse的使用技巧.
.Java中的排序.
.在Java中保留Stereotype.
.将文本格式的文章转换为html/xml.
.对初学者有用的文章.
.Jar文件包间接及Jar命令开发实例.
.Java初学问题实录(四).
.写Java程序最容易犯的21种错误.
.Sun国际认证证书查询.
.Struts的运行.
.10年回顾:世界各地开发高手谈Java.
.远程控制Java.

java api之算法

发表日期:2008-1-5 |



  ?算法

  本节中所描述的多态算法 (polymorphic algorithms)是由 JDK 所提供的可重复使用的功能性片段。它们均取自Collections类,并都采用静态方法(它的第一个参数是执行操作的 对象集)的形式。由Java平台所提供的绝大多数算法都操作于List对象,但有两个 (min 和 max) 操作于任意Collection对象。以下是关于算法的描述

  排序(Sorting)

  排序算法可为一个 List 重新排序,以使它的元素按照某种排序关系成上升式排序。有两种形式的操作被提供。简单形式的操作只采用一个 List 并按照它的元素的自然排序进行排序。假如你对自然排序的概念不熟悉,那么应该重新阅读 对象排序(Object Ordering).

  sort 操作使用做了些优化的合并排序(merge sort) 算法。假如你不知道它的含义,而又很看重它的话, 请阅读关于算法的任意一种教科书。这个算法的重要之处是:
快速: 这个算法被保证运行在 n log(n) 时间内,并在已基本排序的列表上,它的速度实质上更快。经验表明,它的速度与高度优化的快速排序(quicksort)的速度差不多, Quicksort 一般被认为快于合并排序,但它不稳定,并不保证 n log(n)性能。

  稳定: 这就是说,它不为相等的元素重新排序。假如你为相同的列表做不同属性的重复排序,这一点对你来说是十分重要的。假如一个邮件程序的用户为它的邮件箱按日期排序,然后又按发件人排序,这个用户自然地期望某个特定发件人的现在相邻的消息列表将(仍然)按日期排序。这一点只有在第二个排序是稳定的时候才能得以保证。

  以下是 一个小程序,它可按词典(字母)顺序打印它的参数:
import java.util.*;

public class Sort {

public static void main(String args[]) {

List l = Arrays.asList(args);

Collections.sort(l);

System.out.println(l);

}

}
  让我们运行这个程序:

% java Sort i walk the line

[i, line, the, walk]

  演示这个程序只是为了表示我是毫无保留的:这个算法确实是象它们所显现的那样简单。我不想低估你的能力而演示更傻的例子。

  第二种形式的 sort除采用一个 List 外,还采用一个 Comparator 并且使用 Comparator 对元素进行排序。还记得在 Map 课程结 钡呐帕凶榈睦勇?? 它以一个非特定的顺序打印出排列组。假设你要以相反的大小顺序打印它们,大的排列在前面。下列例子将告诉你如何借助 sort 方法的第二种形式而达到你的目的。
  回想一下,排序表是以 List 对象的形式作为一个 Map 中的值而被存储的。修改后的打印代码通过 Map 的 values视图进行迭代, 将每一个通过最小尺寸测试的List放进List 之中。然后,代码使用一个期望 List 对象的 Comparator 为这个 List 排序,并实现反转大小排序。
最终,代码通过现在已排序的 List 进行迭代,打印它的元素(排序组)。这个代码在 Perm 的 main 方法末尾替代了打印代码:

// Make a List of all permutation groups above size threshold

List winners = new ArrayList();

for (Iterator i = m.values().iterator(); i.hasNext(); ) {

List l = (List) i.next();

if (l.size() = minGroupSize)

上一篇:J2ME 2D小游戏入门之周边工具类 人气:485
下一篇:虚拟现实之高级技巧(五) 人气:549
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-4 PhpCMS2008 bulid 081203 简体中
2008-12-4 Menalto Gallery v1.5.10 多国语
2008-12-4 Phpcms2008 bulid 081203 简体中
2008-12-4 乘风多用户计数器 v3.92 (Acc)
2008-12-4 乘风多用户计数器 v3.92 (Sql)
2008-12-4 BBSxp 2008 8.0.5 SP2 Build 081
2008-12-4 ASBLOG v2.5 bulid 081118(1201)
2008-12-4 非零坊幽默短信 v3.4
2008-12-4 红茶巴士(公交)查询系统 v3.0
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号