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


Groups > comp.lang.java.help > #1126

Re: How to sort String array A based on int array B

From "Thee Chicago Wolf (MVP)" <.@.>
Newsgroups comp.lang.java.help
Subject Re: How to sort String array A based on int array B
Date 2011-09-23 20:27 -0500
Organization .
Message-ID <m8cq77pb4h2odihba17kjmdeb1hkhmo115@4ax.com> (permalink)
References (3 earlier) <u-CdnSQgGqDnC-HTnZ2dnUVZ_rOdnZ2d@earthlink.com> <e9ap771g34045ad5tda2mp36imru521ks9@4ax.com> <Kd6dnbo1BNGUJuHTnZ2dnUVZ_s6dnZ2d@earthlink.com> <j5np771d6gjjdo1m1cj43fo4e6s3lknb1f@4ax.com> <5PmdnbXtmIHNYOHTnZ2dnUVZ_vCdnZ2d@earthlink.com>

Show all headers | View raw


>"Thee Chicago Wolf [MVP]" <.@.> wrote in message 
>news:j5np771d6gjjdo1m1cj43fo4e6s3lknb1f@4ax.com...
>> >On 9/23/2011 8:51 AM, Thee Chicago Wolf [MVP] wrote:
>>>>> On 9/23/2011 6:51 AM, Thee Chicago Wolf [MVP] wrote:
>>>>>>> On 9/22/2011 12:31 PM, Thee Chicago Wolf [MVP] wrote:
>>>>>>>
>>>>>>>> The trouble I am having is sorting array B based on array A.
>>>>>>>
>>>>>>>
>>>>>>> I don't doubt that.  I'm having trouble understanding what "based on"
>>>>>>> means here.  Can you elaborate?  What actual operation do you want to
>>>>>>> preform on A and B, based on what criteria?
>>>>>>
>>>>>> Ok, after reading my post I can see that I was not quite as clear as I
>>>>>> could have been.
>>>>>>
>>>>>> So I have two arrays: A and B. Array A is an int array (I think I had
>>>>>> it backwards in my original description) and array B is a String
>>>>>> array. Array A is already ordered from 1 - 6 in ascending order and is
>>>>>> basically a rank order with 1 being most popular, 2 =  less popular
>>>>>> than 1, 3 = less so than 2, etc. Array B is the artist info,
>>>>>> scrambled, but each artist is defined by their appropriate popularity
>>>>>> with a #_ naming convention preceding the artist name and song title.
>>>>>> I figured that array B had to have some defining characteristic about
>>>>>> it else there would be no way to order a bunch of String info to a
>>>>>> corresponding rank without knowing the current artist ranking.
>>>>>
>>>>> You say "I figured" so presumably that part of the description is not 
>>>>> an
>>>>> explicit part of the original problem definition. How confident are you
>>>>> that B should contain ranking information? If it does, the array A 
>>>>> seems
>>>>> superfluous, and the problem is simply one of sorting B.
>>>>>
>>>>> There are alternative interpretations of the rest of your comments that
>>>>> would give meaning to both arrays.
>>>>
>>>> Here is the original requirement:
>>>>
>>>> Modify any of the sort algorithms to sort a secondary array B based on
>>>> the sorting order of A (that is akin to say: sort the titles of the
>>>> songs (B) based on their rank (A).
>>>>
>>>> I chose to add Artist info in addition to song title. This is why I
>>>> specifically added the #_ (read as number underscore) to the String
>>>> array else I figured there was no easy way to sort them based on a
>>>> rank. Meaning, you can't compare an int to a String. In my mind, I
>>>> thought that adding the #_ to the beginning of the String item would
>>>> make it easier to sort it. Does that make sense?
>>>
>>>Generally, adding your own features to a program before doing what is
>>>actually required is a very bad mistake. First get what is needed
>>>working, and have that version available to turn in. If you have time
>>>later, and want to get some more programming practice, add your own
>>>features.
>>>
>>>The way I would interpret the original requirement is that B contains
>>>the song titles, and absolutely nothing but the song titles. No numbers
>>>- unless they are part of the song title, no underscore, no artist
>>>information. A[i] is the rank of B[i]. That is, if B[i] is the highest
>>>rated title, A[i] is 1. If B[i] is the lowest rated of six titles then
>>>A[i] is 6.
>>>
>>>In this interpretation there is no need to compare an int to a String,
>>>only to compare an int to another int.
>>
>> Maybe I am missing the gist here but I would still be comparing an int
>> to a String, not int to int. B[i] will be a bunch of song titles that
>> would be of type String. You're not saying compare index to index,
>> right?
>>
>>>I'll give you a couple of hints:
>>>
>>>1. Maintain the relationship between A and B as an invariant during the
>>>sort.
>>>
>>>2. At the end of the sort, A will be in ascending value order if you
>>>want highest rank, lowest rank number, title first.
>>
>> Nothing in A[] should be changing as those values are static, only the
>> order of the titles in B[] should be sorted based on the defined order
>> of what's in A[].
>>
>> - Thee Chicago Wolf [MVP]
>
>Are you certain that the integer values in the A array are already in sort 
>order?  My intuition is that they are not and that you must sort them.  In 
>the process of sorting them the elements in the A array will change or swap 
>their position.  Every time this happens your code must swap the 
>corresponding elements in the B array.  This will keep the A and B arrays in 
>synchronization.
>
>If my intuition is wrong then I do not understand you problem as explained 
>thus far. 

The int array is already sorted:

int[] rank = {1,2,3,4,5,6};

The song tiltles are not sorted:

String[] song = {"6_song",
"4_song",
"1_song",
"3_song",
"2_song",
"5_song"};

I took the top 6 songs from the "Top 40 Charts" that are already
ranked from 1-6.

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


Thread

How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-22 14:31 -0500
  Re: How to sort String array A based on int array B markspace <-@.> - 2011-09-22 15:38 -0700
    Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-23 08:51 -0500
      Re: How to sort String array A based on int array B Patricia Shanahan <pats@acm.org> - 2011-09-23 07:23 -0700
        Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-23 10:51 -0500
          Re: How to sort String array A based on int array B Patricia Shanahan <pats@acm.org> - 2011-09-23 09:59 -0700
            Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-23 14:31 -0500
              Re: How to sort String array A based on int array B Patricia Shanahan <pats@acm.org> - 2011-09-23 12:39 -0700
              Re: How to sort String array A based on int array B "Charles Hottel" <chottel@earthlink.net> - 2011-09-23 17:42 -0400
                Re: How to sort String array A based on int array B "Thee Chicago Wolf (MVP)" <.@.> - 2011-09-23 20:27 -0500
                Re: How to sort String array A based on int array B Patricia Shanahan <pats@acm.org> - 2011-09-23 18:39 -0700
                Re: How to sort String array A based on int array B "Thee Chicago Wolf (MVP)" <.@.> - 2011-09-26 08:37 -0500
                Re: How to sort String array A based on int array B Patricia Shanahan <pats@acm.org> - 2011-09-26 08:04 -0700
                Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-27 13:47 -0500
                Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-27 13:59 -0500
                Re: How to sort String array A based on int array B Lew <lewbloch@gmail.com> - 2011-09-27 12:25 -0700
                Re: How to sort String array A based on int array B Lew <lewbloch@gmail.com> - 2011-09-26 09:00 -0700
                Re: How to sort String array A based on int array B "Charles Hottel" <chottel@earthlink.net> - 2011-09-23 23:31 -0400
                Re: How to sort String array A based on int array B "Thee Chicago Wolf (MVP)" <.@.> - 2011-09-26 08:29 -0500
  Re: How to sort String array A based on int array B Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-22 22:28 -0400
    Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-23 09:13 -0500
      Re: How to sort String array A based on int array B Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-23 20:45 -0400
  Re: How to sort String array A based on int array B Roedy Green <see_website@mindprod.com.invalid> - 2011-09-23 02:28 -0700
    Re: How to sort String array A based on int array B "Thee Chicago Wolf [MVP]" <.@.> - 2011-09-23 09:14 -0500
  Re: How to sort String array A based on int array B Roedy Green <see_website@mindprod.com.invalid> - 2011-09-25 00:46 -0700

csiph-web