`
high0048
  • 浏览: 24377 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
接上篇,改进了快速排序会排重的特性,现在不会排重了,而且输出的日志组织的更为合理,更能明白程序运行的过程 原理再阐述一下: 把列表中的数字分为3类,以第一个数字为轴心,分为小于它的,等于它的,大于它的。然后对于小于它的和大于它的,分别递归调用上述整个过程,直到列表为空。 程序的执行就像一颗树,又像一个栈,只有到分到最后列表为空时,才知道最终结果,然后这些结果一下子返回,每个子集都是排好序的,最后整个集合也是排好序的。 package com.test.clazz; import java.util.ArrayList; import java.util.Arrays; imp ...
受erlang启发,写的一个快速排序,兼具排重功能,哈哈。 elang快速排序代码如下: qsort([]) -> []; qsort([Pivot|T]) -> qsort([X || X <- T, X < Pivot]) ++ [Pivot] ++ qsort([X || X <- T, X > Pivot]) 深夜灵感突现,写了又调,2个小时后出炉 其思想是,sort接受的参数是一个乱序的List,但sort返回的一个子集必须是已排好序的。 用到了递归,递归用好了真是无比强大,在函数式编程语言中尤其如此,比如说erlang,lisp ...
原文 http://www.jifuyi.com/tag/erlang/ erlang四大behaviour之一gen_server(转载) erlang程序设计里面有个设计原则就是把你的进程构造成树,把共用代码提出来,特定功能用自己的module实现,这也就是behaviour了,应用behaviour可以减少与本身事务无关的代码量,设计逻辑更加清晰。老纪边学习边记录吧。 gen_server实现服务器/客户端模型,用于多个客户共用一个资源的这种情况。他由几个接口函数和几个回调函数组成(回调函数必须在你的module里定义)这些可以参考erlang的doc 举个例子: -modul ...
1、ejabberd是的Jabber / XMPP协议的即时通讯服务器,持牌GPLv2许可下(自由和开放源码) ,写的爱尔朗/检察官办公室。在其它特性中, ejabberd是跨平台,容错, clusterable和模块化。 开发语言: ErLang 项目主页: http://www.ejabberd.im/ ...
这样一个场景: 查询条件:83 < price < 87, city = 杭州           order by time           但是只要前3条记录。 按前面的条件查出来是250万条 总记录11亿条, 但是只要前3条记录。 方案一: 要从11亿条按时间排序的记录中找出250万条符合条件的 250万条copy成(11亿/250万)份,和各个时间区段(0-3天以内,3到6天以内。。。这样)求交集 方案二: 是取时间段的前5000条,和那250万条求交集,看是否有3条满足;不满足继续找下5000条求交集 要做到的: 1.求交集算法,尽可能快,并且不改变原来排好 ...
作者:high0048 关键词:排序好的,分堆排序,最小值,最大值,中值,节点,虚拟化,数据迁移 传统数据查询之所以在大规模数据上性能达不到要求,是由于这些查询的排序工作是到查询之前的那一刻才进行的,这样做,要处理的东西就很多,就像临阵磨枪,所以很难。 如果我们在数据插入的时候,就进行大部分的排序,整理工作,(就好像先把房间整理好,再找东西就不难了)等到查询的时候只需要做很小的一部分工作,性能就会大大提升。 目前Key-Value的数据库十分火爆,由于其性能十分优秀,key的值就好像是地址,Value的值就是真正用到的数据,用的时候,直接从地址找数据。但是这样的数据库不能面对复杂查询。 ...
  程序的执行有2种方式,一种就是互不依赖,互不影响的方式,称为独立运行。另一种就是前后相互依赖的方式,后面的执行要依赖前面的结果,称为因果运行。   并行化的关键就是尽可能的分离出这两种方式。MapReduce就是分离的一种办法。   对于因果运行,可以想到的方式,就是将所有可能结果的排列组合一一计算出来,最后取出符合条件的结果。     这种计算方法对于计算机的运算能力和中间结果的存储,都是一种前所未有的挑战。   优化的方式,是选择概率最高的组合先计算,概率低的组合后计算。   各种可能结果,出现的概率分布,在每一次计算之后都会有所不同,这就像是条件概率,每计算出一些结果,条件发 ...
今天调试程序,冒出了这段 ===ERROR REPORT==== 20-Sep-2010::15:33:53 === ** Generic server my_bank terminating ** Last message in was {add,"joe",10} ** When Server state == 20496 ** Reason for termination == ** {'function not exported',[{ets,lookup,[]},                              {my_bank,handle_cal ...
OTP 设计原理:  http://erlang.shiningray.cn/otp-design-principles/ 18岁的工程师谈 Erlang/OTP: http://hi.baidu.com/k1000j1000/blog/item/072e67a825b041f41f17a268.html http://blog.csdn.net/lawme/archive/2008/12/12/3503050.aspx http://blog.csdn.net/lawme/archive/2008/12/14/3515508.aspx ...
    初学,留记,以便日后总结。     1.基本概念:变量不变,模式匹配,原子,元组,列表。     2.要掌握的模型:服务器-客户端模型(行模式,自由模式)。     3.重要的应用:协议解析,针对一个协议,写一个函数 ...
  应该是 提出解决方案 的能力,时刻明白自己想要什么,如何解决。许多牛人在写程序的时候不是死盯着屏幕,而是写一段,停下来,看着别处,理清思路,再继续往下写。   所以能提出解决方案,思路不断,是最重要的,这需要对问题非常清晰,不断的克服种种障碍,养成这种习惯。
Global site tag (gtag.js) - Google Analytics