<集大成>アルゴリズム大辞典
at TECH
402:デフォルトの名無しさん
08/06/04 11:13:39
>>401
いかにもオリジナル的な書き方になったのはすみませんが、それは知っていました。
ついでにちょっと改良したやつを。
コムソートの部分をシェーカーソート風にすると、より良いです。(オリジナルではないです)
シェーカーソートはバブルソートを双方向から行います。
シンプルさが売りなのにちょっとゴチャついてるので、本当はシェーカーソートは外したいんですけどね。(つづく)
void sort(int[] data) {
for (int h = data.length * 10 / 13; h >= 17; h = h * 10 / 13) {
for (int i = h; i < data.length; i++)
if (data[i-h] < data[i])
swap(data, i-h, i);
h = h * 10 / 13;
if (h < 17) break;
for (int i = data.length - 1; i >= h; i--)
if (data[i-h] < data[i])
swap(data, i-h, i);
}
for (int i = 1; i < data.length; i++) {
int w = data[i], j = i;
for (j = i; j > 0 && data[j-1] < w; j--)
data[j] = data[j-1];
data[j] = w;
}
}
void swap(int[] a, int i, int j) {
int w = a[i];
a[i] = a[j];
a[j] = w;
}
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4390日前に更新/131 KB
担当:undef