Valhalla Legends Forums Archive | Java Programming | Sorting arrays

AuthorMessageTime
LW-Falcon
I'm supposed to create an array of 50 random integers between 1 and 100, then sort it using the dumb bubble sort. Printing the original list, the list after each pass, and the final sorted list. Here's my code
[code]
import java.lang.System;
import java.util.Random;

public class sort_2
{
public static void main(String []args)
{
Random r = new Random();
int x[] = new int[50];
int swaps = 0, passes = 0, temp;

for(int i=0;i<x.length;i++)
{
x[i] = r.nextInt(100) + 1;
}
System.out.print("Original Array \n[ ");
for(int i=0;i<x.length;i++)
{
System.out.print(x[i]+" ");
}
System.out.print("] \nSorted Array \n[ ");
for(int p=1;p<x.length;p++)
for(int i=0;i<x.length-1;i++)
{
if(x[i] > x[i+1])
{
temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
}
}
for(int a=0;a<x.length;a++)
{
System.out.print(x[a]+" ");
}
System.out.print("] \n");
}
}
[/code]
That only prints the original and final sorted list, I thought it would print it after each pass if I put
[code]
for(int a=0;a<x.length;a++)
{
System.out.print(x[a]+" ");
}
[/code]
after
[code]
if(x[i] > x[i+1])
{
temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
}
[/code]
But when I compile and run it, it seems like an infinite loop. Can someone tell me where to put the output statement that'll print the list after each pass?
February 2, 2005, 2:11 AM
Kp
Perhaps you should refrain from resetting your iteration counter while it's still in use.  Use an int j for your printing code inside the sorting loop.
February 2, 2005, 3:06 AM
LW-Falcon
Ahh it works now, thanks :)
February 3, 2005, 12:04 AM

Search