Я все еще очень плохо знаком с Java, и это задание для школы, где я должен создать класс ShellSort и класс драйвера.Класс ShellSort должен создать и заполнить массив размером n и содержит метод сортировки оболочки, использующий следующий псевдокод:
![pseudo-code](https://i.stack.imgur.com/xsePN.png)
Этокод, который у меня пока есть:
import java.util.*;
public class ShellArray {
int array[] = null;
int size=0;
Random random = new Random();
int gap = 0;
public ShellArray (int size) {
this.size = size;
array=new int[size];
for (int i = 0; i<size; i++) {
this.array[i]=random.nextInt(100);
}
System.out.println("Your array is: ");
for(int i=0; i<size;i++) {
System.out.print(" " +array[i] + " ");
}
}
public int[] shellSort(int size) {
gap = size/2;
do {
boolean swapflag = true;
do {
swapflag = false;
for (int s = 0; s<(size-gap);s++) {
if (array[s] > array[s+gap]) {
//swap array[s] with array[s+gap]
swapflag = true;
}
}
}
while (swapflag != false);
}while (gap>0);
gap = gap/2;
}
public String toString () {
//to output array results of each swap
}
}
Я заблудился относительно того, как поменять массив [s] с массивом [s + gap] и как использовать toString для вывода массива при каждом обмене.
Я пытался использовать переменную "temp" для помещения массива [s], чтобы я мог поместить массив [s + gap] в индекс массива [s], но я получил "ShellArray @ 7c53a9eb"ошибка?
Любая помощь будет высоко ценится!Спасибо.