RSS Forums RSS
Please support our Java advertiser: Lunarpages Java Web Hosting
Views: 8556 | Replies: 1
Join Date: Jul 2003
Posts: 1
Reputation: acee is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
acee acee is offline Offline
Newbie Poster

Some help needed with Selection Sort in java, Please!!

  #1  
Jul 12th, 2003
Working on a problem which uses a main only to implement Selection Sort. You enter arbitrary amount of integers and when the program runs it spits out the integers in increasing order. So the output would be something like this:

Enter Integers to sort: 3
> 1
> 8
> -5

answer:
> -5
> 1
> 8

Here is what i have done so far (note: Terminal is a class that lets me do input/output. It was custom made by someone) :

public class SelectionSort
{
  public static void main(String[] args)
  {
    // Prompt for the number of integers and put them in a array of that
    // size.

    Terminal t = new Terminal();
    int n = t.readInt("Integers to sort? ");
    int[] integerArray;
    integerArray = new int[n];

    for(int i = 0; i < n; i++) {
      integerArray[i] = t.readInt("> ");
    }

     // Find the index with the smallest integer.

     for(int i = 0; i < integerArray.length; i++) {
       int start = i;
       for (int x = i + 1; x < integerArray.length; x++) {
         if (integerArray[x] < integerArray[start])
          start = x;
        }

     // Use Selection Sort alogorithm to sort the array in increasing
     // order.

        int small = start;
        for (int z = 0; z < integerArray.length; z++) {
          int tmp = integerArray[small];
          integerArray[small] = integerArray[i];
          integerArray[i] = tmp;

        }

   }
        t.println();

      // Print out the integers in increasing order.

          for(int i = 0; i < n; i++) {
          t.println(integerArray[i]);
         }

    }



}

 


It compiles fine, but when i run it, its somewhat buggy. The problem is that when i enter a odd number at the prompt "Enter number of integers: ", it works fine. But if i enter a even number, it doesn't work so well. It just prints the integers the way they were typed instead of in increasing order like so:

Integers to sort? 2
> 2
> 1

answer:

2
1

Thanks.
AddThis Social Bookmark Button
Reply With Quote  

Only community members can participate in forum threads. You must register or log in to contribute.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes
Forums | Blogs | Tutorials | Code Snippets | Whitepapers | RSS Feeds | Advertising
All times are GMT -4. The time now is 7:14 am.
Newsletter Archive - Sitemap - Privacy Statement - Acceptable Use Policy - Contact Us
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC