ビデオアニメーション|シェーカーソートは何ですか?

たくさん遅くクイックソートよりもカクテルソート実際にバブルソート、それの時間の複雑さとバブルソートを変形させ、O(N ^ 2)です。

カクテルソートアルゴリズム

同じ考えのカクテルソートは振り子のようなビットは、左から右に、右に左。バブルソートは、実行するための唯一の方法です。

カクテルは、ソート、右から左へ、その後、左側に配置され、最小の数を最大数の配置への旅行を交換する権利、最初に左から右へ、という仮説を作るの昇順で交換一種です。

ビデオアニメーション

コード

結果

初期状態[5、1、9、3、7、4、8、6、2]
左からは、交換される[1、5、9、3、7、4、8、6、2]
左から右へ交換が起こる[1、5、3、9、7、4、8、6、2]は
左から右には、交換される[1、5、3、7、9、4、8、6、2]
左から右へ交換が起こる[1、5、3、7、4、9、8、6、2]は
左から右には、交換される[1、5、3、7、4、8、9、6、2]
左から右へ交換は[1、5、3、7、4、8、6、9、2]を発生する
[1、5、3、7、4、8、6、2、9]交換され、左から右に
右から左へ交換は[1、5、3、7、4、8、2、6、9]生じる
[1、5、3、7、4、2、8、6、9]右から左への交換された
右から左へ交換は[1、5、3、7、2、4、8、6、9]生じる
[1、5、3、2、7、4、8、6、9]右から左への交換された
右から左へ交換は[1、5、2、3、7、4、8、6、9]生じる
[1、2、5、3、7、4、8、6、9]右から左への交換され
、左から右へ交換が起こる[1、2、3、5、7、4、8、6、9]
左から右には、交換される[1、2、3、5、4、7、8、6、9]
左から右へ交換は[1、2、3、5、4、7、6、8、9]を発生します
スイッチングは[1、2、3、5、4、6、7、8、9]右から左に発生する
[1、2、3、4、5、6、7、8、9]で交換される右から左に

不要な交換を低減するように最適化

前回のバブルソートやクイックソートを読むこのインタビューは、あなたの強さを表示するように、と話ができた後、私は、それが最適化研究の焦点であると考えています。

私たちは、不要な切り替えの数を最適化します。この時間は、是非します!

私は、プログラムが少し速く実行できるように、スワップ機能を除去することによって、それを呼び出します。判決を毎回予選た場合、最大または最小のデータは、マークを作るために、すべての後、唯一の交換でも比較的完全であるように、交換は致しません。

ビデオアニメーション

コード

結果

初期状態[5、1、9、3、7、4、8、6、2]
右[5、1、2、3、7、4、8、6、9]交換され、左から
右から左へ交換は[1、5、2、3、7、4、8、6、9]を発生する
[1、5、2、3、7、4、6、8、9]交換され、左から右に
右から左へ交換は[1、2、5、3、7、4、6、8、9]を発生する
、[1、2、5、3、6、4、7、8、9]交換され、左から右に
右から左へ交換は[1、2、3、5、6、4、7、8、9]を発生する
、[1、2、3、5、4、6、7、8、9]交換され、左から右に
右から左へ交換は[1、2、3、4、5、6、7、8、9]を発生します

おすすめ

転載: www.cnblogs.com/wotxdx/p/12004092.html