今日、私は以前、重複した間隔(または範囲、間隔)を削除することについて、明らかにひどく形成され、したがって既に削除されていました。問題は、完全に他の間隔内にある間隔を取り除く方法でした。わずかに良い可視化完全にオーバーラップする間隔または範囲を削除する
1-2
2-3
1-3
2-4
または場合:
1-2
2-3
1---3
2---4
間隔1-2
と2-3
の両方が削除され、それらは間隔1-3
に含まれているので、その出力は次のようになります。たとえば、私たちは以下の持っている
1-3
2-4
先験的アルゴリズムアルゴリズムは、おそらくすべての間隔O(n )の比較をもたらす。誰かが処理前にソースデータを並べ替えることを提案しましたが、この問題には他の角度がありますか?
明白な例は、(データのソート)している:あなたはデータや提携タグでの素敵な落とし穴や他の例を思い付く場合
1-3 remove
1--4
1-3 remove this or next
1-3
1--4
2-4 remove
1---5
2-4 remove
1-3 print this, maybe next depending on the one after that
2-4
は、それらを追加してください。
あなたは、 '-F-' – karakfa
'ソートfile'ので、アルファベット順にソートされます' 10を設定することにより、分割を回避することができます'' 2 'の前に来るでしょう。 '' sort -t'-' -k1 -k2 -n file'のようなものが必要です。私はいつも私の並べ替えの引数を混在させるが、数値的に別々に範囲の各部分を並べ替える必要があるという考えを得ることを確認してください。 –
そして@karakfaは正しいです - '-F ' - ''を設定し、 'a [1]'を '$ 1'などで置き換えます。 –