私は問題に遭遇しました、そしてあなたの指導が必要です。基本的に私はこのバブルソートメソッドを作成することができました。これをギャップソートに変更するにはどうすればよいですか。リスト全体で隣接する要素を毎回比較するのではなく、数(i)の位置だけ離れている要素を比較します。ここで、(i)はn未満の整数です。たとえば、最初の要素は(i + 1)要素、2番目の要素は(i + 2)要素、n番目の要素は(ni)要素などと比較されます。すべての要素が完了すると、1回の反復が完了します。比較できる、比較されています。次の反復で、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;
}
}
}
}