`
zhoucl
  • 浏览: 50195 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

编程珠玑(1)

阅读更多

开始看了下编程珠玑,书的开篇就是一个排序的问题,今天就来实践一下,稍作修改,如题目大意:生成1千万个1亿以内的不重复的数据集合.

public final static int count = 100000000;
private static boolean[] collect = new boolean[count];
private static int[] source = new int[count/10];

public void createDate() {
	int temp  = 0;
	for(int i = 0; i < count/10;) {
                temp = new Random().nextInt(count);
		if(!collect[temp]) {
			source[i] = temp;
			collect[temp] = true;
			System.out.println(i + " = " + source[i] );
			i++;
		}
	}
}

 这通过boolean来标识的话,速度确实加快了不少,直接变为了近O(n)了,不知道还能不能进行改进~~~

 

分享到:
评论
1 楼 gangwazi0525 2012-03-07  
那个无重复随机数生成算法可以改进,楼主采用的是S算法,可以换成效率更高的F算法。F算法在编程珠玑(续)里有讲。在我的机子上楼主的算法跑下来需要19188ms,采用F算法改进的只需要1765ms。
public final static int count = 10000000;
	private static boolean[] collect = new boolean[count];
	private int[] source = new int[count/10];
	
	// 采用Floyd算法生成10000000个0~100000000之间的无重复随机整数,并对其进行排序
	public void sort() {
		int n = count;
		int m = count / 10;
		int temp = 0;
		for (int i = n-m; i < n; i ++) {
			temp = new Random().nextInt(n);
			if (!collect[temp]) {
				source[i-n+m] = temp;
				collect[temp] = true;
			} else {
				source[i-n+m] = i;
				collect[i] = true;
			}
		}
	}

相关推荐

    编程珠玑1和2

    《编程珠玑1和2》是两本深受程序员喜爱的经典著作,主要涵盖了C语言的深入理解和实践技巧。这本书籍不仅适合初学者,也对有经验的开发者提供了宝贵的洞见。以下将详细介绍这两本书中涉及的一些核心知识点。 1. **...

    编程珠玑 编程珠玑 编程珠玑 编程

    《编程珠玑》是一本经典的计算机科学与编程书籍,作者是Jon Bentley。这本书以其独特的视角深入探讨了程序设计的艺术和技巧,旨在提升程序员的问题解决能力,优化算法,并提高代码效率。书中涵盖了一系列实用的编程...

    字符串反转编程珠玑1

    从《字符串反转编程珠玑1》这一主题,我们可以深入探讨这些算法问题背后的设计思想以及解决方法。根据描述,这里的向量旋转问题具体化为将给定的字符串形式的一维向量向左旋转特定的步数,这既是字符串操作的变异,...

    编程珠玑 第2版(修订版)_编程珠玑修订_资料_

    《编程珠玑 第2版(修订版)》是一本深受程序员喜爱的经典著作,它不仅提供了丰富的编程实践经验,还深入探讨了程序设计的艺术与智慧。这本书的修订版更是在原版基础上进行了更新和完善,旨在帮助程序员提升编程技能,...

    编程珠玑源码下载编程珠玑书后源代码

    《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley 编著,它以其深入浅出的方式探讨了程序设计的问题和解决方案,尤其在数据结构、算法优化以及问题解决策略方面有着独到的见解。这本书的源代码是作者为了...

    编程珠玑(第二版)答案

    根据提供的标题“编程珠玑(第二版)答案”和描述“编程珠玑(第二版)答案”,我们可以推测出这是关于《编程珠玑》这本书的相关解答资料。《编程珠玑》是一本经典的计算机科学书籍,作者为Jon Bentley。本书旨在...

    编程珠玑(续)

    《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...

    编程珠玑 编程珠玑续

    《编程珠玑》和其续篇是两部深受程序员喜爱的经典著作,主要涵盖了程序设计、算法分析和数据结构等核心编程领域。这两本书以其深入浅出的讲解方式和丰富的实例,帮助读者提升编程技巧和解决问题的能力。 在《编程...

    编程珠玑高清pdf版.pdf

    《编程珠玑》是计算机科学领域的一本经典之作,由Jon Bentley著,主要探讨了程序设计问题的解决方法和算法优化。这本书的核心理念是通过实际的编程问题来传授如何高效地设计和分析算法,旨在提升程序员的问题解决...

    编程珠玑续本

    编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本

    编程珠玑 Programming Pearls 第二版(中文版+源代码)

    《编程珠玑》是计算机科学领域的一本经典之作,作者是Jon Bentley,它以其独特的视角和深入浅出的讲解方式,向读者展示了编程艺术的精髓。这本书的第二版更是深受程序员和计算机科学家们的喜爱,因为它不仅涵盖了...

    编程珠玑.pdf

    第1章 性能监视工具 3 1.1 计算素数 3 1.2 使用性能监视工具 7 1.3 一个专用的性能监视工具 8 1.4 开发性能监视工具 10 1.5 原理 11 1.6 习题 11 1.7 深入阅读 12 第2章 关联数组 13 2.1 Awk中的关联数组 13 2.2 有...

    编程珠玑(PDF带目录)

    《编程珠玑》无疑是计算机编程领域中的一块瑰宝,其作者Jon Bentley在编写时便意在创建一本能够经受时间考验的经典著作。本书以其深入浅出的讲解方式和丰富的实例,不仅为读者提供了算法领域的知识,更提供了深入...

    编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式

    编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式

    《编程珠玑》源代码

    《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...

    编程珠玑及其源码

    编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...

    编程珠玑总结笔记

    "编程珠玑总结笔记" 本资源笔记总结了编程珠玑中的一些重要知识点,包括优化程序、埃氏筛法和位图法等。 1. 打印出小于 10000 的素数 优化程序是编程珠玑中的一大主题,如何优化程序来提高效率是一个非常重要的...

    编程珠玑源代码

    《编程珠玑源代码》是针对经典书籍《编程珠玑》第二版的源代码集合,主要涵盖C语言和C++编程。这本书以其独特的视角和深入浅出的讲解方式,深受程序员喜爱,尤其对于数据结构、算法和程序设计思维的提升有着重要的...

Global site tag (gtag.js) - Google Analytics