Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #29864

Re: Bubblesort

From Stefan Weiss <krewecherl@gmail.com>
Newsgroups comp.lang.javascript
Subject Re: Bubblesort
Date 2016-03-09 02:38 +0100
Organization albasani.net
Message-ID <nbnur4$4tr$1@news.albasani.net> (permalink)
References (2 earlier) <XnsA5C17A5C66BA1eejj99@194.109.6.166> <086a7397-459b-46e3-b83c-cfc7edf4188a@googlegroups.com> <7b1ee9db-4732-48e1-be7e-37ba62db4c6e@googlegroups.com> <nbc50g$44d$1@news.albasani.net> <2815605.oGPRxZOVvt@PointedEars.de>

Show all headers | View raw


On 03/08/2016 23:35, Thomas 'PointedEars' Lahn wrote:
> Stefan Weiss wrote:
>> Alternatively, you can sort string array elements using a numeric
>> comparison function:
>>
>>     arr[x].nodelinks.sort((a, b) => a - b);
>>
>> Or in a more verbose form (but with better UA compatibility):
>>
>>     function compareNumeric (a, b)
>>     {
>>         return a - b;
>>     }
>>
>>     arr[x].nodelinks.sort(compareNumeric);
> 
> For reasonable backwards-compatibility, the function declaration is 
> unnecessary/unwise, unless the comparator is declared locally *and* used 
> locally more than once (in which case a function declaration/variable 
> initialization saves memory).

In this case, sort() is used in a loop.

> Function expressions are backwards-compatible 
> down to JavaScript 1.3 and JScript 5.0 at least (Netscape Navigator 4.06+, 
> Internet Explorer 5.0), therefore marked “safe” in the ECMAScript Support 
> Matrix since its inception in 2005 (IIRC).

I didn't mean to say that function declarations were more compatible
than function expressions. The second example is also "more verbose", it
was intended to show how a common comparison function can be made reusable.

The difference in memory usage should be minimal. A declared function
will remain in memory at least until it goes out of scope and can be
garbage collected (when no references to it are left). With function
expressions, no reference to the function is left after it has been used
to sort the array. I don't expect a measureable difference either way.


OT: You didn't mention performance, but I was curious and did a quick
test anyway: in current versions of Firefox and Chrome, there are no
huge differences, although referencing a previously created function is
consistently faster than using an inline expression, and traditional
functions are consistently faster than arrow functions. In Firefox 44,
inline arrow functions are noticably slower than the other variants
(about an order of magnitude).

By the way, const/let are also consistently slower than var, but not by
much. This may be caused by the additional checks required for the
"temporal dead zone".


- stefan

Back to comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Bubblesort jonas.thornvall@gmail.com - 2016-03-04 02:00 -0800
  Re: Bubblesort "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-03-04 18:53 +0800
    Re: Bubblesort "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-03-04 12:01 +0100
      Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 03:03 -0800
      Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 05:15 -0800
        Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 05:41 -0800
          Re: Bubblesort "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-03-04 21:56 +0800
          Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-04 15:10 +0100
            Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 07:37 -0800
              Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-04 17:08 +0100
            Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 07:50 -0800
            Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 07:54 -0800
              Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-04 17:21 +0100
              Re: Bubblesort Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-03-04 19:26 +0000
                Re: Bubblesort "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-03-04 23:05 +0100
                Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-05 09:15 -0800
                Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-08 03:43 +0100
                Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-08 02:41 -0800
                Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-08 09:10 -0800
                Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-08 23:34 +0100
                Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-08 23:46 +0100
                Re: Bubblesort Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-03-09 00:16 +0000
                Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-09 02:41 +0100
            Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-08 23:35 +0100
              Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-09 02:38 +0100
                Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-09 22:04 +0100
                Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-10 21:14 +0100
                Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-10 22:17 +0100
                Re: Bubblesort "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-03-10 22:31 +0100
                Re: Bubblesort Stefan Weiss <krewecherl@gmail.com> - 2016-03-10 23:25 +0100
                Re: Bubblesort "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-03-11 00:16 +0100
        Re: Bubblesort "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-03-04 21:59 +0800
          Re: Bubblesort "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-03-04 17:12 +0100
          Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-05 02:00 +0100
            Re: Bubblesort John Harris <niam@jghnorth.org.uk.invalid> - 2016-03-05 18:39 +0000
            Re: Bubblesort Scott Sauyet <scott.sauyet@gmail.com> - 2016-03-05 17:40 -0800
      Re: Bubblesort "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-03-04 21:54 +0800
        Re: Bubblesort "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-03-04 16:59 +0100
    Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 03:04 -0800
      Re: Bubblesort jonas.thornvall@gmail.com - 2016-03-04 03:55 -0800
    Re: Bubblesort Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-05 00:01 +0100
      Re: Bubblesort Aleksandro <aleksandro@gmx.com> - 2016-03-06 18:41 -0300

csiph-web