我遇到了问题,需要您的指导。基本上我设法创建了这个冒泡排序方法。我如何将其修改为间隙排序,而不是每次通过列表比较相邻元素,而是比较相隔一些数字(i)位置的元素,其中(i)是小于 n 的整数。例如,将第一个元素与 (i + 1) 元素进行比较,将第二个元素与 (i + 2) 元素进行比较,将第 n 个元素与 (ni) 元素进行比较,等等。当所有元素都完成时,一次迭代完成可以比较的,可以比较的。在下一次迭代中,将 i 减少某个大于 1 的数字,并且该过程继续进行,直到 i 小于 1
public static void bubbleSort (Comparable[] data, int maxlength){
int position, scan;
Comparable temp;
for (position = maxlength; position >= 1; position--){
for (scan = 0; scan <= position – 1; scan++){
if (data[scan].compareTo(data[scan+1]) > 0){
// Swap the values
temp = data[scan];
data[scan] = data[scan + 1];
data[scan + 1] = temp;
}
}
}
}