[#400858] Support for multiple Inheritance by classes — Ross Konsolebox <lists@...>

Will Ruby ever support multiple inheritance through classes instead of

23 messages 2012/11/03
[#400859] Re: Support for multiple Inheritance by classes — Arlen Cuss <ar@...> 2012/11/03

I think I can say "no" with a fair amount of confidence.

[#400902] Re: Support for multiple Inheritance by classes — Ross Konsolebox <lists@...> 2012/11/04

Arlen Cuss wrote in post #1082618:

[#400904] Re: Support for multiple Inheritance by classes — Peter Hickman <peterhickman386@...> 2012/11/04

Even though other languages handle multiple inheritance without any

[#400865] why does UnboundMethod need to remember the class it was retrieved from (not merely owner)? — "Mean L." <lists@...>

class Base; def foo; end end

17 messages 2012/11/03

[#400914] login web page using mechanize — john smith <lists@...>

new to ruby, love the language. read programmatic programmers guide to

25 messages 2012/11/04

[#400985] How to merge two or more hashes in to one? — "Jermaine O." <lists@...>

Hi everyone.

14 messages 2012/11/06

[#401026] Site down watir-webdriver — ajay paswan <lists@...>

Whenever a site is down it keeps on looking for it for sometime and

14 messages 2012/11/07

[#401027] Closing popups watir-webdriver — ajay paswan <lists@...>

Sometimes popup comes when a link is clicked, sometimes popup comes when

14 messages 2012/11/07

[#401125] Complete newbie — "Carlos A." <lists@...>

Hey guys!

14 messages 2012/11/10

[#401161] Convert date to string — Ferdous ara <lists@...>

Hi

12 messages 2012/11/11

[#401173] question on watir — Raj pal <lists@...>

I am automating Idit application using Ruby, at one screen I can't feed

233 messages 2012/11/12

[#401191] Extending Array instances — Charles Hixson <charleshixsn@...>

I'm trying to figure out a good way to extend an Array, when the items

17 messages 2012/11/12
[#401195] Re: Extending Array instances — Brian Candler <lists@...> 2012/11/12

Charles Hixson wrote in post #1084111:

[#401200] Efficient way for comparing records between 2 large files (16 million records) — Ruby Student <ruby.student@...>

Team,

9 messages 2012/11/12

[#401274] following along with "Beginning Ruby." — Al Baker <lists@...>

I'm having trouble following along with some of the examples in this

15 messages 2012/11/15

[#401279] Question on exceptions — Justin Gamble <lists@...>

Hello! I have a simple bank program where I have to have an exception

16 messages 2012/11/15
[#401281] Re: Question on exceptions — Justin Gamble <lists@...> 2012/11/15

What is the reason of doing the .new(...)in

[#401295] Re: Question on exceptions — Brian Candler <lists@...> 2012/11/16

Justin Gamble wrote in post #1084635:

[#401296] Re: Question on exceptions — tamouse mailing lists <tamouse.lists@...> 2012/11/16

On Fri, Nov 16, 2012 at 1:43 AM, Brian Candler <lists@ruby-forum.com> wrote:

[#401301] Alternatives to methods for large number of nested "ifs" — Philip Rhoades <phil@...>

People,

11 messages 2012/11/16

[#401336] Advice for simple client/server application — Panagiotis Atmatzidis <atma@...>

Hello,

12 messages 2012/11/17

[#401364] Metaprogramming — "Aurimas N." <lists@...>

Hello,

12 messages 2012/11/19

[#401404] "undefined method `synchronize' for #<Mutex:0xa0f5adc>" from embedded Ruby program — Graham Menhennitt <graham@...>

I'm writing a C++ program (on Centos 5 Linux) that embeds a Ruby 1.9.3

9 messages 2012/11/21

[#401422] how to increase variable inside the while loop — Ferdous ara <lists@...>

Hi, my question might be confusing as its hard for me to make it clear,

12 messages 2012/11/21

[#401451] Arrays with records as objects — Steve Tucknott <lists@...>

I am completely new to Ruby.

11 messages 2012/11/22

[#401458] working with mysql in ruby — john smith <lists@...>

i have been trying to successfully connect ruby with mysql. there are a

17 messages 2012/11/22

[#401567] click on link not working with ie #watir-webdriver — ajay paswan <lists@...>

Greetings,

12 messages 2012/11/26

[#401578] atomic statements in multithreading — ajay paswan <lists@...>

suppose I am working in multiple thread each thread runs following

10 messages 2012/11/26

[#401607] Novice: Understanding instance 'variables' and methods — Steve Tucknott <lists@...>

A question - or comment - on instance variables.

10 messages 2012/11/26

[#401644] Getting the smallest Items of an Array — "Ismail M." <lists@...>

Hello guys,

14 messages 2012/11/27

[#401655] gem problems(sigh) — Al Baker <lists@...>

i tried to make a gem and tried to build the spec file and this is what

10 messages 2012/11/28

[#401688] sorting data from a file — "Ismail M." <lists@...>

Hey guys,

16 messages 2012/11/28

[#401706] Newbie question: (free) on-line courses? — Ken D'Ambrosio <ken@...>

Hello, all. There's a bunch of free on-line training for Javascript,

11 messages 2012/11/28

Re: Getting the smallest Items of an Array

From: Frank Fischer <frank-fischer@...>
Date: 2012-11-29 21:14:58 UTC
List: ruby-talk #401764
On 2012-11-29, Robert Klemme <shortcutter@googlemail.com> wrote:
> On Thu, Nov 29, 2012 at 4:42 PM, Regis d'Aubarede <lists@ruby-forum.com> wrote:
>>> def n_min(l,n) (1..n).map {a=l.min ; l=l-[a]; a } end
>>>
>>>           array.sort[0, n]
>>>           n_min array, n
>>
>>
>> You compar ruby implementation for n_min() with c implementation for
>> sort...
>
> Is that forbidden?  You are making use of C implementation as well.
> With that argumentation of yours you would also need to reimplement
> methods you use inside n_min in Ruby (notably l.min and l-[a]).  Fact
> remains that your algorithm will visit most of the elements of a 2*n
> times.  I find that inelegant but YMMV of course.

I agree with Robert, using #sort is probably the simplest approach and
reasonably fast in most situations. This is exactly what I would do.
But I also like playing around with algorithms ;) So if you're really
keen on both, performance *and* doing as much as possible in ruby, you
can try the following implementation of "min_n", which uses a binary
heap. It has a running-time of O(n*log m) (n=array size, m=number of
small elements) and should by quite fast if m << n. Then it also seems
to be quite competetive with the sort approach.

====
def hdown(a, i)
	x, n = a[i], a.size
	while true do
		l = 2*i + 1
		r = l + 1
		break if l >= n
		nxt = r >= n || a[l] >= a[r] ? l : r
		break if x >= a[nxt]
		a[i], i = a[nxt], nxt
	end
	a[i] = x
end

def hbuild(a)
	(a.size/2).downto(0) do |i| hdown(a, i) end
end

def min_n(a, n)
	if a.size <= n then
		return a.dup
	else
		h = a[0,n]
		hbuild(h)
		n.upto(a.size-1) do |i|
			if h[0] > a[i] then
				h[0] = a[i]
				hdown(h, 0)
			end
		end
		return h
	end
end
====

The following tests are from jruby-1.7.0

1/32768 items sort               2.700000   0.020000   2.720000 (  2.685000)
1/32768 items min_n              1.400000   0.050000   1.450000 (  1.246000)
1/131072 items sort             17.070000   0.010000  17.080000 ( 17.054000)
1/131072 items min_n             4.510000   0.010000   4.520000 (  4.418000)
10/32768 items sort              2.660000   0.000000   2.660000 (  2.655000)
10/32768 items min_n             1.170000   0.010000   1.180000 (  1.142000)
10/131072 items sort            17.060000   0.000000  17.060000 ( 17.036000)
10/131072 items min_n            4.540000   0.010000   4.550000 (  4.437000)
100/32768 items sort             2.660000   0.000000   2.660000 (  2.656000)
100/32768 items min_n            1.440000   0.010000   1.450000 (  1.405000)
100/131072 items sort           17.070000   0.000000  17.070000 ( 17.039000)
100/131072 items min_n           4.900000   0.010000   4.910000 (  4.782000)
1000/32768 items sort            2.650000   0.000000   2.650000 (  2.653000)
1000/32768 items min_n           3.850000   0.000000   3.850000 (  3.794000)
1000/131072 items sort          17.080000   0.010000  17.090000 ( 17.042000)
1000/131072 items min_n          8.550000   0.010000   8.560000 (  8.320000)


and with 1.9.3

1/32768 items sort               3.420000   0.030000   3.450000 (  3.437513)
1/32768 items min_n              2.540000   0.000000   2.540000 (  2.544122)
1/131072 items sort             15.840000   0.160000  16.000000 ( 16.007184)
1/131072 items min_n            10.050000   0.000000  10.050000 ( 10.037374)
10/32768 items sort              3.420000   0.000000   3.420000 (  3.422531)
10/32768 items min_n             2.620000   0.000000   2.620000 (  2.616946)
10/131072 items sort            15.910000   0.000000  15.910000 ( 15.913246)
10/131072 items min_n           10.250000   0.000000  10.250000 ( 10.246652)
100/32768 items sort             3.410000   0.010000   3.420000 (  3.413907)
100/32768 items min_n            3.500000   0.000000   3.500000 (  3.502954)
100/131072 items sort           15.910000   0.010000  15.920000 ( 15.923128)
100/131072 items min_n          11.340000   0.010000  11.350000 ( 11.353193)
1000/32768 items sort            3.420000   0.000000   3.420000 (  3.417772)
1000/32768 items min_n          11.060000   0.000000  11.060000 ( 11.074263)
1000/131072 items sort          15.880000   0.000000  15.880000 ( 15.882260)
1000/131072 items min_n         22.170000   0.020000  22.190000 ( 22.197999)



Best regards,
Frank


In This Thread