Я хочу создать поток, который будет сортировать массив с помощью метода BubbleSort, но у меня есть некоторые проблемы.BubbleSort thread не работает
Это мой BubbleSort класс:
package thread;
import java.util.Arrays;
public class BubbleSort implements Runnable {
private int[] array;
private long start, end;
public BubbleSort(int[] array){
this.array=array;
}
public void sort(){
int j;
boolean flag = true;
int temp;
while (flag) {
flag= false;
for(j=0;j<array.length-1;j++){
if (array[j]>array[j+1]){
temp = array[ j ];
array[j] = array[ j+1 ];
array[j+1] = temp;
flag=true;
}
}
}
}
@Override
public void run() {
start = System.currentTimeMillis();
this.sort();
end = System.currentTimeMillis();
System.out.println(end-start);
}
public long getTime(){
return end - start;
}
@Override
public String toString(){
return Arrays.toString(array);
}
}
и главный класс:
package multisort;
import thread.BubbleSort;
public class MultiSort {
public static void main(String[] args) {
int[] x = {12,34,53,1,23,532,102,31,12,0,344,123,5422,12341,22,3410,123,342,233,12342,234432,12334};
BubbleSort bs = new BubbleSort(x);
Thread bsThread = new Thread(bs);
bsThread.start();
System.out.println(bs+"\n"+bs.getTime());
/*
bs.sort();
System.out.println(bs); it works
*/
}
}
Проблема заключается в том, что массив не будет отсортирован, если я называю мой метод сортировки в методе запуска. Кто может помочь мне с ответом?
Какую отладку вы пробовали? – ceejayoz
«Проблема в том, что это не работает» не помогает. Вы должны быть более конкретными в отношении того, что * точно * вы ожидаете и что * точно * получаете, а затем задаете конкретный вопрос о том, что именно вы не понимаете. –