0
私は問題に遭遇し、あなたのガイダンスが必要です。基本的に私はこのバブルソート方法を作成することができました。これをGap Sortに変更すると、リストのたびに隣接する要素を比較するのではなく、(i)個の位置が離れている要素が比較されます(iはn未満の整数です)。例えば、第1の要素は、(i + 1)要素、(i + 2)要素に第2の要素、(ni)要素にn番目の要素などと比較される。単一の反復は、すべての要素比較することができ、比較されている。次の反復で、iは1より大きく、いくつかの数で減少し、私が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;
}
}
}
}
ですGapSort実装をお探しですか?このリンクの2番目の記事をチェックしてください:http://www.daniweb.com/software-development/java/threads/238791/gap-sort – Fido
thnx。あなたは何かを説明できますか? "double SF = 1.3;"それはなぜ有用なのでしょうか? – serge
大きなアイデアから始め、すべてのループでそれを縮小することです。 SFは "縮小係数"のようなものです(このポストでは、 "縮小係数"のようなものを意味します)。この場合は約76%です(つまり、繰り返しごとに76%に縮小されます値)。 – Fido