I missed that Array.sort() excludes last index from sorting....
Craig O'Brien wrote:
>
> Hey,
>
> Good job. Nice trick. I messed around with an ArrayList and
> Collections.sort which was faster then my original (the 15 minute job) but
> yours was still faster. I tried your trick only to find out that in
> ArrayList the elementData field is private. :0( Short of customizing an
> implementation List myself.... you win. for now....
>
> What was the deal with making your array 1 element shorter then mine?
> Competitive edge right?
>
> Good luck and thanks for the idea.
>
> By the way, how is your Tomcat doing? hehe
>
> Got to get back to work.
>
> Regards,
> Craig
>
> --The comparison code -- (includes ArrayListSort)
>
> import java.util.*;
>
> class TestVectorSort {
>
> Vector vec = new Vector();
> SortableVector vVec = new SortableVector();
> ArrayList arrList = new ArrayList();
>
> public static void main(String[] args) {
> TestVectorSort v = new TestVectorSort();
> v.arraySimpleSort();
> }
>
> void arraySimpleSort() {
> // the hack...hehe
> for (int i = 10000; i >0; i--) {
> vec.add(new String("" + i));
> }
> long timeIn = System.currentTimeMillis();
> Object[] obArr = vec.toArray();
> Arrays.sort(obArr);
> vec.removeAllElements();
> for (int i = 0; i < obArr.length; i++) {
> vec.add(obArr[i]);
> }
> long timeOut = System.currentTimeMillis();
> obArr = null;
> System.out.println("Time to sort CraigsVectorSort: " + (timeOut -
>timeIn)
> + " ms");
>
> // VladsVectorSort
> for (int i = 10000; i >0; i--) {
> vVec.add(new String("" + i));
> }
> long timeIn2 = System.currentTimeMillis();
> vVec.sort();
> long timeOut2 = System.currentTimeMillis();
> System.out.println("Time to sort VladsVectorSort: " + (timeOut2 -
>timeIn2)
> + " ms");
>
> // ArrayListSort
> for (int i = 10000; i >0; i--) {
> arrList.add(new String("" + i));
> }
> long timeIn3 = System.currentTimeMillis();
> Collections.sort(arrList);
> long timeOut3 = System.currentTimeMillis();
> System.out.println("Time to sort ArrayList: " + (timeOut3 - timeIn3)
>+ "
> ms");
>
> arrList = null;
> vVec = null;
> vec = null;
> System.gc();
> }
> }
>
> class SortableVector extends java.util.Vector
> {
> public synchronized void sort()
> {
> java.util.Arrays.sort(elementData, 0, elementCount);
> }
> }
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Monday, March 05, 2001 9:59 AM
> To: [EMAIL PROTECTED]
> Subject: Re: QuickSorting Vectors
>
> Ooops...
> Replace
>
> java.util.Arrays.sort(elementData, 0, elementCount - 1);
>
> with
>
> java.util.Arrays.sort(elementData, 0, elementCount);
>
> ----------------------------------------------------
>
> I claim this is faster (inspired by the Vector's source code, he-he):
>
> public class VladsVectorSort {
>
> SortableVector vec = new SortableVector();
>
> public static void main(String[] args) {
> VladsVectorSort v = new VladsVectorSort();
> v.arraySimpleSort();
> }
>
> void arraySimpleSort() {
> vec.add(new String("abbot"));
> vec.add(new String("silium"));
> vec.add(new String("randy"));
> vec.add(new String("goofy"));
> vec.add(new String("zenia"));
> vec.add(new String("pokie"));
> vec.add(new String("xylaphone"));
> vec.add(new String("dogface"));
> vec.add(new String("friggen-joe"));
> vec.add(new String("penuckle"));
> vec.add(new String("charlie"));
> vec.add(new String("manna"));
>
> System.out.println("before: " + vec);
> vec.sort();
> System.out.println("after :0) : " + vec);
> }
>
> class SortableVector extends java.util.Vector
> {
> public synchronized void sort()
> {
> java.util.Arrays.sort(elementData, 0, elementCount - 1);
> }
> }
> }
>
> This is it (at least it seems to be!)
> Of course you need to make sure all Vector elements are mutually
> Comparable...
>
> --V.
>
> Craig O'Brien wrote:
> >
> > Vlad and I were thinking along the same lines. This is easy but may not
> be
> > the best for commercial applications.
> >
> > Here is a simple program I just wrote:
> >
> > class CraigsVectorSort {
> >
> > Vector vec = new Vector();
> >
> > public static void main(String[] args) {
> > CraigsVectorSort v = new CraigsVectorSort();
> > v.arraySimpleSort();
> > }
> >
> > void arraySimpleSort() {
> > vec.add(new String("abbot"));
> > vec.add(new String("silium"));
> > vec.add(new String("randy"));
> > vec.add(new String("goofy"));
> > vec.add(new String("zenia"));
> > vec.add(new String("pokie"));
> > vec.add(new String("xylaphone"));
> > vec.add(new String("dogface"));
> > vec.add(new String("friggen-joe"));
> > vec.add(new String("penuckle"));
> > vec.add(new String("charlie"));
> > vec.add(new String("manna"));
> >
> > System.out.println("before: " + vec);
> > Object[] obArr = vec.toArray();
> > Arrays.sort(obArr);
> > vec.removeAllElements();
> > for (int i = 0; i < obArr.length; i++) {
> > vec.add(obArr[i]);
> > }
> > obArr = null;
> > System.out.println("after :0) : " + vec);
> > }
> > }
> >
> > It works efficiently. You may want to consider using one of the
> collections
> > rather then Vector. You may not need the synchronization so an ArrayList
> > would be faster. Many many considerations.
> >
> > Let me know what you think.
> >
> > Regards,
> > Craig O'Brien
> >
> > Java Programmer/Web Developer
> > [EMAIL PROTECTED]
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, March 02, 2001 6:40 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: QuickSorting Vectors
> >
> > Don't have a sample but you can
> > take a look at the java.util.Arrays's sort(Object[]) method.
> > May be you can use that in combination with Vector.toArray()
> > which calls System.arraycopy, so this should be fast, may be
> > even faster than iterating over Vector's elements during
> > custom sort if you decide to sort Vectors directly.
> >
> > method...
> >
> > --V.
> >
> > Ryan wrote:
> > >
> > > I am a student but this is not for a class.. I am trying to keep a
> thread
> > > running that holds files in a directory. I just want to maximize my
> > bandwith
> > > and CPU usage for my web site.
> > >
> > > -ryan
> > >
> > > ----- Original Message -----
> > > From: "Stefán F. Stefánsson" <[EMAIL PROTECTED]>
> > > To: <[EMAIL PROTECTED]>
> > > Sent: Friday, March 02, 2001 5:21 PM
> > > Subject: RE: QuickSorting Vectors
> > >
> > > > R U a student?
> > > >
> > > > When is the deadline?
> > > >
> > > > -----Original Message-----
> > > > From: Ryan [mailto:[EMAIL PROTECTED]]
> > > > Sent: 3. mars 2001 00:46
> > > > To: [EMAIL PROTECTED]
> > > > Subject: QuickSorting Vectors
> > > >
> > > >
> > > > Does anyone have a quicksorting class that sorts Vectors containing
> > > > Strings that wouldn't mind letting me look at?
> > > >
> > > >
> > > > -ryan
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, email: [EMAIL PROTECTED]
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, email: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, email: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, email: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]