Author | Message | Time |
---|---|---|
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 |