I'm try realize bubble sort and it's doesn't work! Help me find a problem.
Code:
public class Main {
public static int e=0;
public static int arraylength;
public static int[] array = new int[10];
public static void main(String[] args) {
Random random = new Random();
for(int i=0;i<array.length;++i){
array[i]=random.nextInt(10);
System.out.print(" "+array[i]);
}
arraylength=array.length;
for (int i =0;i<arraylength;i++) {
arraylength--;
for (int j = 0; j < arraylength - 1; j++) {
if (array[j] > array[j + 1]) {
e = array[j + 1];
array[j + 1] = array[j];
array[j] = e;
}
}
}
}
}
public class Main {
public static int e=0;
public static int arraylength;
public static int[] array = new int[10];
public static void main(String[] args) {
Random random = new Random();
for(int i=0;i<array.length;++i){
array[i]=random.nextInt(10);
System.out.print(" "+array[i]);
}
System.out.println();
arraylength=array.length;
for (int i =0;i<arraylength;i++) {
arraylength--;
for (int j = 0; j < array.length - 1; j++) {
if (array[j] > array[j + 1]) {
e = array[j + 1];
array[j + 1] = array[j];
array[j] = e;
}
}
}
for(int i=0;i<array.length;++i){
System.out.print(" "+array[i]);
}
}
}
Change
for (int i =0; i<arraylength; i++) {
to
for (int i =0; i<array.length; i++) {
The outer loop needs to run once for every element in the array, and you cannot do that with the arraylength
variable because you are decreasing its value i.e. after the first iteration, arraylength
no longer equals array.length
.