`
hideto
  • 浏览: 2682337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
Θ(n^2) 1, Bubble sort def bubble_sort(a) (a.size-2).downto(0) do |i| (0..i).each do |j| a[j], a[j+1] = a[j+1], a[j] if a[j] > a[j+1] end end return a end 2, Selection sort def selection_sort(a) b = [] a.size.times do |i| min = a.min b << min ...
线性时间排序即时间复杂度为Θ(n)的排序,主要有计数排序、基数排序和桶排序 以前的排序都涉及到元素比较,称为比较排序,渐近最优的为merge sort和heap sort,时间复杂度为Θ(nlogn) 而这种排序都不是用比较的操作来排序,所以下届Θ(nlogn)对它们不适用 计数排序 1,假设数组a所有元素i满足1<=i<=k,建立数组b且初始值为0 2,读取数列每个元素,如果元素为i,则b[i]的值加一 3,遍历数组b,如果b[i]=j,就输出j次i,这样输出的序列就是已经排好序的 时间复杂度为Θ(n+k),k为常数 计数排序适合所需排序的数组元素取值范围不大的情况,如果每个元素 ...
又是一年过去了,Rails在国内的发展势态良好,很多使用RoR开发的Web2.0网站如雨后春笋般涌现,从Ruby on Rails 在国内的使用情况这篇文章可窥一斑。很多人关心RoR是否成熟、RoR是否适合商业应用等问题,另外一些朋友可能对Rails的研究停留在理论阶段,缺乏RoR实践经验。 借助CSDN举办的SD2C开发大会这个平台,这次北京RoR活动邀请了FreeWheel UI开发团队的软件工程师们开坛布道,给大家分享在RoR开发过程中的一些心得和体会,与大家交流一下Rails在商业领域的应用。 活动安排 时间:2008-12-05 19:00 - 21:00(周五晚上) 地点:九华山 ...
Quick Sort原理很简单,典型的分治法: 1,分 数组a一分为二,比元素x小或等的子数组和比元素x大的数组 2,递归 子数组递归分 3,合 子数组分好以后按序合并即可 用Ruby和Erlang实现Quick Sort实在简洁: ruby: def quick_sort(a) (x=a.pop) ? quick_sort(a.select{|i| i <= x}) + [x] + quick_sort(a.select{|i| i > x}) : [] end erlang: quick_sort([]) -> []; quick_sort ...
终于搞明白堆排序了,汗一个 先上代码: def heapify(a, idx, size) left_idx = 2 * idx + 1 right_idx = 2 * idx + 2 bigger_idx = idx bigger_idx = left_idx if left_idx < size && a[left_idx] > a[idx] bigger_idx = right_idx if right_idx < size && ...
一个并发程序是由在时间上重叠的一组逻辑流组成的 三种不同的构建并发程序的机制:进程、I/O多路复用和线程 进程是由内核自动调度的,而且因为它们有各自独立的虚拟地址空间,所以要实现共享数据,它们需要显示的IPC机制 事件驱动程序创建它们自己的并发逻辑流,这些逻辑流被模型化为状态机,用I/O多路复用来显示地调度这些流 因为程序运行在一个单一进程中,所以在流之间共享数据速度很快而且很容易 线程是这些方法的综合,同基于进程的流一样,线程是由内核自动调度的 线程运行在一个单一进程的上下文中,因此可以快速而方便地共享数据 无论哪种并发机制,同步对共享数据的并发访问都是一个困难的问题 提出对信号量的P和V ...
虚拟存储器是对主存的一个抽象 支持虚拟存储器的处理器通过使用一种叫虚拟寻址的间接形式来使用主存 处理器产生一个虚拟地址,在被发送到主存之前,这个地址被翻译成一个物理地址 从虚拟地址空间到物理地址空间的地址 ...
详情请见: http://ecug.org/ 大家也帮忙宣传宣传
MySQL 5.1参考手册 :: 7. 优化 一、查询优化 使用EXPLAIN EXPLAIN tbl_name 返回Field、Type、Null、Key、Default、Extra这几列对应的表中每个字段的值 相当于DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_name EXPLAIN [EXTENDED] SELECT select_options 借助于EXPLAIN,可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECT EXPLAIN为用于SELECT语句中的每个表返回一行信息 EXPLAIN的每个输出行提 ...
jack 写道不是工具的问题,是测试粒度大小的问题,还有怎么测试。 model的函数,要测试吗,controller用到了这个model的这个函数,要测试吗,view中呢,都要一层一层测试吗。 测试那一层才是最有必要的? 结合自己的一些体会有感而发: 在freewheel的UI(UI指Web界面,不是单纯的指html、css)组工作1年多,一个较大的体会是流程化、自动化的控制做的比较好。我们有程序员level的单元测试,有ci服务器,有专门的QA team(QA team vs DEV team接近1 : 1的人数) 为什么我们这么重视测试? 因为商业软件特别是ASP product很注 ...
渐近记号 θ(g(n))={f(n):存在正常数c1,c2和n0,使对所有的n>=n0,有0 <= c1g(n) <= f(n) <= c2g(n)} Ο(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,有0 <= f(n) <= cg(n)} Ω(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,有0 <= cg(n) ...
1,增量法(incremental) 例:插入排序(insertion sort) ruby版本: def insertion_sort(a) a.each_with_index do |el,i| j = i - 1 while j >= 0 break if a[j] <= el a[j + 1] = a[j] j -= 1 end a[j + 1] = el end end erlang版本: -module ...
当前week的第一天: select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY) 当前week的最后一天: select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY) 前一week的第一天: select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY) 前一week的最后一天: select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 D ...
Job Title:  Network/System Engineer Job Description: Freewheel Media, Inc., a leading Video Adserving company is seeking for System and Network engineers to help build and operate a Global Adserving infrastructure.  Candidate will be part of a global tech team to run a worldwide 24X7 Adserving Netw ...
计算机将信息编码为位(比特),通常组织成字节序列。有不同的编码方式用来表示整数、实数和字符串。不同的计算机模型在编码数字和多字节数据中的字节顺序上使用不同的约定。 C语言被设计成包容多种不同字长和数字编 ...
Global site tag (gtag.js) - Google Analytics