タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

sortとperlに関するgologo13のブックマーク (1)

  • 再帰処理のクイックソート vs 非再帰処理のクイックソート

    なるエラーでプログラムが続行できなくなる不具合に悩みました。そこで、今まで記述したことのない非再帰処理のクイックソートに書き直すことになりました。 僕の業は VBA でないので、これ以上詳しい Excel VBA のソートのお話しは以下のサイトをご覧下さい。 さて、以下の説明は VBA に実装する前に作成した Perl 版クイックソートに説明を切り替えます。 まずは単純に再帰処理のクイックソートを実装してみる sub qsort_normal() { my $array = shift; my $left = shift; my $right = shift; my ($i, $j, $pivot, $tmp); if ($left < $right) { $i = $left; $j = $right; $pivot = $array->[($left+$right)/2]; whil

    gologo13
    gologo13 2010/07/11
    非再帰版の考え方は、再帰処理をループ処理とスタック変数を用意して自前で再現することです。再帰関数を呼び出す部分が、スタックへの push に相当します。再帰関数から抜ける処理が、スタックの pop に相当します。
  • 1