The requirements were, IIUC, that you have to interchange.

R.E. Boss


> -----Oorspronkelijk bericht-----
> Van: [email protected] [mailto:programming-
> [email protected]] Namens Roger Hui
> Verzonden: dinsdag 1 september 2009 18:49
> Aan: Programming forum
> Onderwerp: Re: [Jprogramming] Selection Sort
> 
> I wonder:  if you are going to use /:, why not just do /:~
> and be done with it?
> 
> 
> 
> ----- Original Message -----
> From: "R.E. Boss" <[email protected]>
> Date: Tuesday, September 1, 2009 9:43
> Subject: Re: [Jprogramming] Selection Sort
> To: 'Programming forum' <[email protected]>
> 
> > /: holds all the info you need to swap.
> >
> > t=:6 15 19 12 14 19 0 17 0 14
> >
> >    [t0=: (<t),~ |.<@~."1 |:([,:]{~ [...@.>)/^:_
> > (i...@# ,:&}: /:) t
> > +-+-+---+---+-+-+---+---+---+--------------------------+
> > |8|7|6 8|5 9|4|3|2 6|1 8|0 6|6 15 19 12 14 19 0 17 0 14|
> > +-+-+---+---+-+-+---+---+---+--------------------------+
> >
> >    |.><@(C.>)/\.t0
> > 6 15 19 12 14 19  0 17  0 14
> > 0 15 19 12 14 19  6 17  0 14
> > 0  0 19 12 14 19  6 17 15 14
> > 0  0  6 12 14 19 19 17 15 14
> > 0  0  6 12 14 19 19 17 15 14
> > 0  0  6 12 14 19 19 17 15 14
> > 0  0  6 12 14 14 19 17 15 19
> > 0  0  6 12 14 14 15 17 19 19
> > 0  0  6 12 14 14 15 17 19 19
> > 0  0  6 12 14 14 15 17 19 19
> >
> > Or simply
> >
> >    (C.>)/ (<t) ,~ |.<@~."1 |:([ ,: ] {~
> > [...@.>)/^:_ (i...@# ,:&}: /:) t
> > 0 0 6 12 14 14 15 17 19 19
> >
> >
> > R.E Boss
> >
> >
> > > -----Oorspronkelijk bericht-----
> > > Van: [email protected] [mailto:programming-
> > > [email protected]] Namens Roger Hui
> > > Verzonden: dinsdag 1 september 2009 1:00
> > > Aan: Programming forum
> > > Onderwerp: Re: [Jprogramming] Selection Sort
> > >
> > > More faithful to the specs (actually doing interchanges).
> > > Also using components.
> > >
> > >    ix=: C.~ <@~.@(0, (i. <./))
> > >    ss1=: ({. , $:@}.)@ix^:(*...@#)
> > >
> > >    data
> > > 6 15 19 12 14 19 0 17 0 14
> > >    ix data
> > > 0 15 19 12 14 19 6 17 0 14
> > >    ss1 data
> > > 0 0 6 12 14 14 15 17 19 19
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: Roger Hui <[email protected]>
> > > Date: Monday, August 31, 2009 13:03
> > > Subject: Re: [Jprogramming] Selection Sort
> > > To: Programming forum <[email protected]>
> > >
> > > > A problem not worth solving is not worth solving well?
> > > > For whatever it's worth:
> > > >
> > > >    ss=: (i.<./) ({ , $:@((~:i...@#) # ]))^:(*...@#@]) ]
> > > >
> > > >    ] data=: 10 ?...@$ 20
> > > > 6 15 19 12 14 19 0 17 0 14
> > > >    ss data
> > > > 0 0 6 12 14 14 15 17 19 19
> > > >
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: Alex Rufon <[email protected]>
> > > > Date: Monday, August 31, 2009 12:49
> > > > Subject: [Jprogramming] Selection Sort
> > > > To: Programming forum <[email protected]>
> > > >
> > > > > I can't sleep so I tried working on Selection Sort which states:
> > > > >
> > > > > First find the smallest element in the array and exchange it
> > > > > with the element in the first position, then find the second
> > > > > smallest element and exchange it with the element in the
> > > > second
> > > > > position, and continue in this way until the entire array is
> > > > > sorted. Its asymptotic complexity is
> > > > > O<http://rosettacode.org/wiki/O>(n2) making it inefficient
> > > > on
> > > > > large arrays.
> > > > > http://rosettacode.org/wiki/Selection_sort
> > > > >
> > > > > The best I can do is:
> > > > > selectionSort=: verb define
> > > > > data=. y
> > > > > for_xyz. y do.
> > > > >   temp=. xyz_index }. data
> > > > >   nvidx=. xyz_index + temp i. <./ temp
> > > > >   data=. ((xyz_index, nvidx) { data) (nvidx, xyz_index) } data
> > > > > end.
> > > > > data
> > > > > )
> > > > >
> > > > >
> > > > > NB. We generate 10 random numbers between 0 and 99 and assign
> > > > to
> > > > > a variable
> > > > >
> > > > >    [data=. 10 ? 100
> > > > >
> > > > > 51 18 81 46 11 54 74 63 56 76
> > > > >
> > > > >    selectionSort data
> > > > >
> > > > > 11 18 46 51 54 56 63 74 76 81
> > > > >
> > > > > I tried figuring out how to do this without looping but I
> > > > can't.
> > > > > Can it be done without loops?
> > > ---------------------------------------------------------------
> > -------
> > > For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > -----------------------------------------------------------------
> > -----
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to