非再帰のマージソートについて
非再帰のマージソートを作成しているのですが、
上手いこと出来なくて困っています。
条件として配列の開始と終了のインデックスを指定して、
その間の要素だけをソートしたいのです。
ex:
int array[10] = { 9,8,7,6,5,4,3,2,1,0 };
MergeSort( array, 2, 6 ); // array[2]~array[6]をソート
for( int i=0; i<10; i++ ) printf( "%d, ", array[i] );
出力)
9, 8, 3, 4, 5, 6, 7, 2, 1, 0,
以下のサイトで公開されているマージソートを元に
私なりに弄ってはいるのですが、
メモリを壊してしまうようなエラーが頻発して、
どうもうまくいかないのです・・・。
http://besky-works.spaces.live.com/Blog/cns!555CF2E2F9E31C71!557.entry
どなたがおわかりの方がいらっしゃれば、
その方法を教えていただければ助かります。
お礼
どうもありがとうございました。