Sorting two single dimensional arrays

I am having trouble sorting 2 arrays.  I must use single-dimensional arrays.  All I need to do is create 2 arrays - one for video titles and one for the inventory ID for each video title, sort by the inventory ID and print out the sorted list.  I am totally lost and think I really messed up my code now.  I had the program working up until the most important part (of course) - sorting and displaying the sorted video titles.  I know you can sort by object array, but can it be done the way I am trying??  My code is below:

public class Video
{
 public static void main(String[] args)
 {
  String[] videos = {"Lion King", "Holes", "Finding Nemo", "Beauty and the Beast", "Parent Trap"};
  int[] inventoryId = {102, 101, 104, 103, 100};
  int x;
  System.out.println("Unsorted movie titles:");
  for(x = 0; x < 5; ++x)
   System.out.println(inventoryId[x] + "    " + videos[x]);

public static void bubblesort(videos, int len)
{  
int a,b;
  Video temp;
  int lenMinusOne = len - 1;

//Sort by inventoryId
  for(a = 0; a < lenMinusOne; ++a)
    for(b = 0; b < lenMinusOne; ++b)
      if(array[b].inventoryId > array[b + 1].inventoryId)
      {
        temp = array[b];
        array[b] = array[b + 1];
        array[b + 1] = temp;
      }
   for(x = 0; x < 5; ++x)
   //System.out.println("Sorted movie titles:");
   System.out.println(inventoryId[x] + "    " + videos[x]);
 }
}
angeloriAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

CEHJCommented:
You need to swap both array values at the same time. I'll let you fill in the holes here:

public class Video
{
 public static void main(String[] args)
 {
  String[] videos = {"Lion King", "Holes", "Finding Nemo", "Beauty and the Beast", "Parent Trap"};
  int[] inventoryId = {102, 101, 104, 103, 100};
  int x;
  System.out.println("Unsorted movie titles:");
  for(int i = 0;i < inventoryId.length ;i++) {
    System.out.println(inventoryId[i]);

  }
  bubblesort(videos, inventoryId);
  for(int i = 0;i < inventoryId.length ;i++) {
      System.out.print(inventoryId[i] + ", ");
      System.out.println(videos[i]);

  }
 }

public static void bubblesort(String[] videos, int[] ids)
{
int a,b, temp;
String tempTitle;

//Sort by inventoryId
  for(a = 0; a < ids.length; a++)
    for(b = 0; b < a; b++)
      if(ids[a]  < ids[b])
      {
        tempTitle = videos[b];
        videos[b] = videos[a];
        videos[a] = tempTitle;
        temp = ids[b];
        ids[b] = ids[a];
        ids[a] = temp;
      }
 }
}
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
JakobACommented:
>> CEHJ:   I think you mean:

public static void bubblesort(String[] videos, int[] ids)  // boyh arrays to be sorted
{
int a,b, temp;
String tempTitle;
int lenMinusOne = videos.length -1;      // get length of arrats (minus one)

//Sort by inventoryId
  for(a = 0; a < lenMinusOne; a++)
    for(b = 0; b < lenMinusOne; b++)
      if(ids[a]  < ids[b])
      {
        tempTitle = videos[b];
        videos[b] = videos[a];
        videos[a] = tempTitle;
        temp = ids[b];
        ids[b] = ids[a];
        ids[a] = temp;
      }
 }
}

regards JakobA
0
CEHJCommented:
>>I think you mean:

Do I? Why? ;-)
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

JakobACommented:
actually we can cut the sorting time in half if we think a bit. notice how the inner loop alwat push the biggest value to the end of the array. no need to sort that value again:

public static void bubblesort(String[] videos, int[] ids)  // boyh arrays to be sorted
{
int a,b, temp;
String tempTitle;
int lenMinusOne = videos.length -1;      // get length of arrats (minus one)

//Sort by inventoryId
  for(a = lenMinusOne;  a>0 ;  a--)  //  a goes 'backwards'
    for(b = 0;  b < a;  b++)             //  b only sort up to a in each scan    
      if(ids[a]  < ids[b])
      {
        tempTitle = videos[b];
        videos[b] = videos[a];
        videos[a] = tempTitle;
        temp = ids[b];
        ids[b] = ids[a];
        ids[a] = temp;
      }
 }
}
0
CEHJCommented:
8-)

JakobA's last optimization is good btw
0
angeloriAuthor Commented:
Wow!  Thanks to both of you!  I consulted someone who is a Java programmer where I work and they were stumped too.  You 2 are awesome....Sorry about the length of time in accpeting the answer, etc.  This is my first time using this service.  
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.