2

値を移動するのではなく、配列をソートするアルゴリズムを探しています。むしろ、できるだけ少ない値を削除して、並べ替えられたリストにしたいと考えています。基本的に、最も長い昇順のサブ配列を見つけたいと思っています。

説明する:

1 4 5 6 7 2 3 8

なるはずです (2 削除)

1 4 5 6 7 8

ではない (5 削除)

1 2 3

これを単純な方法で行う方法、つまり、各要素の「削除」ツリーと「削除しない」ツリーの両方を再帰的にチェックする方法がわかります。これを行うためのより高速で効率的な方法があるかどうか疑問に思っていました。この種の問題に対する一般的な頼りになるアルゴリズムはありますか?

4

2 に答える 2

3

サイトには、再帰アルゴリズムよりも高速な O(NlogN) アルゴリズムが 1 つあります。

http://www.algorithmist.com/index.php/Longest_Increasing_Subsequence

于 2013-04-08T10:34:54.807 に答える