选择显示字体大小

java api之算法


  ?算法

  本节中所描述的多态算法 (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 方法的第二种形式而达到你的目的。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons