HIRASE CONNECTION WK

programming collection

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

Link Collection

2008年5月7日 #

[C++] バブルソート

バブルソート(Bubble sort)

2つの要素を比べては交換、比べては交換して、交換できる要素がなくなれば終了。同じ要素の並びは変わらない安定ソート。

template <typename TElement, typename TSize>
void BubbleSort(TElement * data, const TSize size)
{
    bool swapped = false;
    do
    {
        swapped = false;
        const TSize max = size - 1;
        for (TSize i = 0; i < max; ++i)
        {
            TElement diff = data[i] - data[i+1];
            if (diff > 0)
            {
                data[i  ] = data[i+1];
                data[i+1] = diff + data[i];
                swapped = true;
            }
        }
    } while (swapped);
}

これでOK?

交換するコードが、味噌味。

posted @ 23:34 | Feedback (7)