Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 738
  • Last Modified:

bubble sort program sorting numbers in ascending order using java

How to solve a problem where the program must arrange integers input by the user in ascending order. The user is prompted to input an amount of integers to be sorted & then the actual numbers. This program is a bubble sort problem
0
s4suxs
Asked:
s4suxs
  • 4
  • 3
  • 3
  • +3
2 Solutions
 
CEHJCommented:
Study the following for your assignment before Java implementation:

http://en.wikipedia.org/wiki/Bubble_sort
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
CEHJCommented:
>>here u go

Why not just supply ALL the code? ;-)


You'll need to read standard input http://www.exampledepot.com/egs/java.io/ReadFromStdIn.html
0
 
objectsCommented:
you caqn adapt the following to read user input into a file

http://www.objects.com.au/java/qa/908090699.html

just replace the file stream with stdin
and change the test condition for example to look for an empty line

the follwoing can be used to convert string to an int

http://www.objects.com.au/java/qa/590040453.html

let me know if u have any questions :)
0
 
s4suxsAuthor Commented:
this is what i got so far, but after i enter how many numbers i want to enter, it just enters all 0's.  for example, if i say that i want to input 5 numbers, it will automatically input 5 zeros and put them in order as the output, how do i fix it?
class SortArray
{
public static void main(String args[])
{
 Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int arr1[] = new int[n];
 
 int entry[] = new int[x];
        BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
 
          for(int i = 0; i < entry.length; i++)
          {
               strEntry = dataIn.readLine();
               entry[i] = Integer.parseInt(strEntry);
               System.out.println();
          }
 
 
for (int i=0;i<arr1.length;i++)
System.out.println(arr1[i]);
for(int i=0;i<(arr1.length-1);i++)
{
for (int j=i+1;j<arr1.length;j++)
{
if(arr1[i]>arr1[j])
{
int x,y;
x=arr1[i];
y=arr1[j];
arr1[i] = y;
arr1[j] = x;
}
}
}
 
System.out.println("Array after sorting in ascending order");
System.out.println();
for (int i=0;i<arr1.length;i++)
System.out.println(arr1[i]);
 
}
}

Open in new window

0
 
ksivananthCommented:
>>          for(int i = 0; i < entry.length; i++)
          {
               strEntry = dataIn.readLine();
               entry[i] = Integer.parseInt(strEntry);
               System.out.println();
          }
>>

change to

          for(int i = 0; i < arr1.length; i++)
          {
               strEntry = dataIn.readLine();
               arr1[i] = Integer.parseInt(strEntry);
               System.out.println();
          }
0
 
ksivananthCommented:
and you don't need entry array at all unless you want to have the user entry for some purpose!
0
 
ksivananthCommented:
even if you want to have, you have to make a copy...
0
 
s4suxsAuthor Commented:
this is what i have so far, but i still cant figure out how to get the user to input their own numbers, who can help?
import java.util.Scanner;
import java.io.*;
 
class sam
{
public static void main(String args[])
{
 
         Scanner in = new Scanner(System.in);
         int n = in.nextInt();
         int arr1[] = new int[n];
 
        int entry[] = new int[n];
        BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
 
 
 
        for (int i=0;i<arr1.length;i++)
        System.out.println(arr1[i]);
 
                for(int i=0;i<(arr1.length-1);i++)
        {
                        for (int j=i+1;j<arr1.length;j++)
                {
                        if(arr1[i]>arr1[j])
                        {
                        int x,y;
                        x=arr1[i];
                        y=arr1[j];
                        arr1[i] = y;
                        arr1[j] = x;
                        }
                }
        }
 
                System.out.println("Array after sorting in ascending order");
                System.out.println();
                for (int i=0;i<arr1.length;i++) System.out.println(arr1[i]);
 
}
}

Open in new window

0
 
objectsCommented:
use something like:

for (int i=0; i<n; i++)
{
   arr1[i] = Integer.parseInt(dataIn.readLine());
}
0
 
CEHJCommented:
You don't need a Scanner *and* a BufferedReader. You can get the numbers in a separate method:

    static int[] getNumbers() {
        Scanner s = new Scanner(System.in);
        int i = 0;
        int[] numbers = new int[256];
        System.out.print("Enter number (q to quit): ");
        while (s.hasNextInt()) {
            System.out.print("Enter number (q to quit): ");
            numbers[i++] = s.nextInt();
        }
        int[] truncated = new int[i];
        System.arraycopy(numbers, 0, truncated, 0, i);
        return truncated;
    }

Open in new window

0
 
blurterboyCommented:
How do I change this program so that it sorts numbers that the user inputs from the command line instead of the numbers that I have specified? Here is what I have.


public class BubbleSort{
 public static void main(String[] args)
 {
   
   for (String str: args) {
     System.out.println(str);
   }
 
   int i;
   int array[] = {5, 10, 297, 3, 18, 4, 5};
   
   for(i = 0; i < array.length; i++)
     System.out.print( array[i]+"  ");
   System.out.println();
   bubbleSort(array, array.length);
   
   for(i = 0; i < array.length; i++)
     System.out.print(array[i]+"  ");
   System.out.println();
  }
 
 public static void bubbleSort( int a[], int n ){
 int i, j,t=0;
 for(i = 0; i < n; i++){
 
   for(j = 1; j < (n-i); j++){
     if(a[j-1] > a[j]){
       t = a[j-1];
       a[j-1]=a[j];
       a[j]=t;
 }
 }
 }
 }
}

Open in new window

0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 3
  • 3
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now