無差別に技術をついばむ鳥

情報処理技術全般を気まぐれに研究するブログです

C++を咥えて個別アルゴリズムをつつく2−基本挿入ソート。ちょっと右へよってよ!

この記事は「 個別のアルゴリズムをつつく2−挿入ソート。ちょっと右へ寄ってくださる? 」 との連動企画ピヨ。詳しい説明はそちらを見てね。 そして、ボクの実装例を見る前に自分で実装を試みよう。
お待たせ♪それじゃつつくピヨ♪


#include 
using namespace std;

//保持するデータの最大数
static const int MAX = 10;

//基本挿入ソート
class SearchMan {
public:
    static void InsertSort(int target[MAX]) {
	for(int insertIndex = 1; insertIndex < MAX; insertIndex++) {
	    //挿入場所に当たるデータを退避
	    int tmp = target[ insertIndex ];
	    //移動する位置
	    int moveIndex = insertIndex -1;
	    //後ろから順番に横へずらしていく・・・
	    while( moveIndex >= 0 ) {
		//挿入位置決定!
		if ( tmp > target[ moveIndex ] ) break;
		//挿入するべき位置じゃないので横へずらす
	        target[ moveIndex + 1 ] = target[ moveIndex ];
	        //隣を調べる
	        moveIndex--;
	    }
	    //あるべき位置へデータを挿入する
	    target[ moveIndex + 1 ] = tmp; 
	}
    }
};

int main(void)
{
    int values[MAX] = { 9,3,5,6,2,8,7,0,1,4 };

    //整理前のデータを確認
    cout << "整列前のデータを表示します。" << endl;
    for(int i = 0; i < MAX; i++) cout << values[i] << '\t';
    cout << endl;

    //ソートする
    SearchMan::InsertSort( values );

    //整理後のデータを確認
    cout << "整列後のデータを表示します。" << endl;
    for(int i = 0; i < MAX; i++) cout << values[i] << '\t';
    cout << endl;
    return 0;
}
別窓 | C++ | コメント:1 | トラックバック:0 | ∧top | under∨
<<中の人の徒然草71 | 無差別に技術をついばむ鳥 | 個別のアルゴリズムをつつく2−挿入ソート。ちょっと右へ寄ってくださる?>>

この記事のコメント

挿入位置の検索にbinary-search使わんと
挿入ソートのメリット半減ちゃいます?
2009-05-12 Tue 23:50 | URL | επιστημη #-[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |