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


Groups > comp.lang.java.programmer > #3987

Re: Did the sort do anything?

From Tom Anderson <twic@urchin.earth.li>
Newsgroups comp.lang.java.programmer
Subject Re: Did the sort do anything?
Date 2011-05-11 21:32 +0100
Organization Stack Usenet News Service
Message-ID <alpine.DEB.2.00.1105112104320.27211@urchin.earth.li> (permalink)
References <eskis656eeu0of5f5do1ogdpfbdau3d06i@4ax.com>

Show all headers | View raw


On Tue, 10 May 2011, Roedy Green wrote:

> I am interested in simple algorithms to detect whether the sort actually 
> did anything.

Write a Comparator that keeps track of how many times it returns >0, and 
keep your fingers crossed that the sort algorithm always passes it 
parameters in index order? A quick try seems to indicate that this does 
work with Arrays.sort, although i don't believe the spec makes it 
something you could rely on.

You could do something with a decorator that associates each element with 
its index in the list, then use that information to do the order check in 
the comparator. I'm not explaining this well, but it's a pretty bad idea, 
so i won't.

If you wrote your own implementation, you could simply count the number of 
times you swap elements, and if it's nonzero, you know the list was out of 
order. This would be a good opportunity to implement a good sorting 
algorithm - something that is, unlike mergesort, adaptive and in-place 
(although not necessarily stable), perhaps Smoothsort:

http://www.keithschwarz.com/smoothsort/

You could also half-implement your own algorithm; do a linear scan through 
your list, checking that each consecutive pair of elements is in order. As 
soon as you hit a pair that isn't, stop, ask Collections.sort to sort the 
remainder of the list, then go back and merge that half with the sorted 
prefix you scanned through. Then return false. If you made it to the end 
of the list without finding anything out of order, return true.

tom

-- 
Can you make fun of everything? Well, my opinion is: if it's been funny,
you were right to do it. -- Coluche

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Find similar


Thread

Did the sort do anything? Roedy Green <see_website@mindprod.com.invalid> - 2011-05-10 08:06 -0700
  Re: Did the sort do anything? markspace <-@.> - 2011-05-10 08:48 -0700
    Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-14 15:33 +1200
      Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-14 08:56 -0400
        Re: Did the sort do anything? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-14 13:54 +0000
          Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-15 11:16 +1200
      Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-14 23:24 -0400
        Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-15 11:20 +0100
          Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-15 07:00 -0400
            Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-15 15:09 +0100
              Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-16 14:28 +1200
                Re: Did the sort do anything? Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-15 22:38 -0400
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-16 19:11 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-16 03:47 -0400
                Re: Did the sort do anything? markspace <-@.> - 2011-05-16 14:14 -0700
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-15 22:40 -0400
                Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-16 21:31 +0100
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-17 09:12 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-16 17:24 -0400
                Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-17 13:26 +0100
          Re: Did the sort do anything? markspace <-@.> - 2011-05-15 04:56 -0700
            Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-15 15:12 +0100
              Re: Did the sort do anything? markspace <-@.> - 2011-05-15 07:52 -0700
          Re: Did the sort do anything? Michael Wojcik <mwojcik@newsguy.com> - 2011-05-18 11:14 -0400
            Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-18 13:02 -0400
            Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-20 18:49 +1200
              Re: Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-20 00:06 -0700
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-20 22:37 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-20 07:09 -0400
  Re: Did the sort do anything? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-10 16:11 +0000
  Re: Did the sort do anything? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-10 21:26 +0200
    Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-11 21:38 +0100
      Re: Did the sort do anything? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-11 23:27 +0200
      Re: Did the sort do anything? Roedy Green <see_website@mindprod.com.invalid> - 2011-05-13 07:40 -0700
        Re: Did the sort do anything? Spock <spock@starfleet.ufp> - 2011-05-13 16:56 -0400
        Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-15 13:58 +1200
          Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-14 23:27 -0400
  Re: Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-11 20:40 +0200
    Re: Did the sort do anything? Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-12 10:40 -0400
      Re: Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-13 03:50 -0700
      Re: Did the sort do anything? Roedy Green <see_website@mindprod.com.invalid> - 2011-05-13 07:46 -0700
        Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-16 14:32 +1200
          Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-15 19:50 -0700
            Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-16 17:57 +1200
              Re: Did the sort do anything? "javax.swing.JSnarker" <gharriman@boojum.mit.edu> - 2011-05-16 03:35 -0400
              Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-16 03:44 -0400
              Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-16 03:53 -0700
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-17 00:02 +1200
                Re: Did the sort do anything? "javax.swing.JSnarker" <gharriman@boojum.mit.edu> - 2011-05-16 08:05 -0400
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-17 09:12 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-16 17:32 -0400
                Re: Did the sort do anything? thoolen <thoolen@tholenbot.thorium> - 2011-05-16 18:09 -0400
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-16 10:02 -0400
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-16 07:16 -0700
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-17 09:11 +1200
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-16 15:00 -0700
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-16 21:08 -0400
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-17 19:11 +1200
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-17 02:34 -0700
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-17 07:19 -0400
                [OT] Naming conventions. Was: Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-17 06:52 -0700
                Re: Naming conventions. Was: Re: Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-18 01:22 -0700
                Re: Naming conventions. Was: Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-18 03:42 -0700
                Re: Naming conventions. Was: Re: Did the sort do anything? RedGrittyBrick <RedGrittyBrick@spamweary.invalid> - 2011-05-18 11:53 +0100
                Re: Naming conventions. Was: Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-18 13:07 -0400
                Re: Naming conventions. Was: Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-18 10:37 -0700
                Re: Naming conventions. Was: Re: Did the sort do anything? Heike Svensson <hsvensson.1093x1_q@hotmail.nospam.com.please> - 2011-05-19 01:29 -0400
                Re: Naming conventions. Was: Re: Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-19 08:28 +0200
                Re: Naming conventions. Was: Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-19 08:50 -0400
                OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? RedGrittyBrick <RedGrittyBrick@spamweary.invalid> - 2011-05-23 10:25 +0100
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-23 09:05 -0400
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? RedGrittyBrick <RedGrittyBrick@spamweary.invalid> - 2011-05-23 17:17 +0100
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-23 14:43 -0400
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? Steve Sobol <sjsobol@JustThe.net> - 2011-05-23 08:27 -0700
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? RedGrittyBrick <RedGrittyBrick@spamweary.invalid> - 2011-05-23 17:39 +0100
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re:   Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-23 19:16 +0200
                Re: OT: National stereotypes. Was Re: Naming conventions. Was: Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-23 14:47 -0400
                Re: Did the sort do anything? Boojum <boojum42@gmai1.c0m> - 2011-05-18 07:19 -0400
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-20 18:46 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-20 07:10 -0400
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-17 07:16 -0400
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-17 06:56 -0700
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-20 18:46 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-20 07:11 -0400
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-20 05:00 -0700
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-20 05:20 -0700
                Re: Did the sort do anything? Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-21 09:56 +1200
                Re: Did the sort do anything? Lew <noone@lewscanon.com> - 2011-05-20 18:12 -0400
                Re: Did the sort do anything? Patricia Shanahan <pats@acm.org> - 2011-05-20 21:26 -0700
                Re: Did the sort do anything? Gheerax IV <gheerax.4@gmail.invalid> - 2011-05-17 06:58 +0000
                Re: Did the sort do anything? Unitary Matrix <umatrix668@gmail.com> - 2011-05-17 00:13 -0700
                Re: Did the sort do anything? markspace <-@.> - 2011-05-17 07:41 -0700
    Re: Did the sort do anything? Roedy Green <see_website@mindprod.com.invalid> - 2011-05-13 07:42 -0700
      Re: Did the sort do anything? Robert Klemme <shortcutter@googlemail.com> - 2011-05-13 21:28 +0200
  Re: Did the sort do anything? Tom Anderson <twic@urchin.earth.li> - 2011-05-11 21:32 +0100

csiph-web