送信でパケットを並べ替えるアルゴリズムを開発しています。各パケットには、[0, 256) のシーケンス番号が関連付けられています。最初のパケットのシーケンス番号はこれらの値のいずれかを取ることができ、その後、次のパケットは次の値を取り、次のパケットはその後の値を取ります (255 の後にロールオーバーします)。
正しい順序でのパケットのシーケンス番号は次のようになります。ここで、「n」は最初のパケットのシーケンス番号です。
n, n+1, n+2, ..., 254, 255, 0, 1, 2, ..., 254, 255, 0, 1, 2, ..., 254, 255, 0, 1, ...
各パケットには、宛先に到着した時点でタイムスタンプが付けられ、すべてほぼ順番に到着します。(正確な数値はわかりませんが、到着タイムスタンプでソートされたパケットのリストを考えると、シーケンス番号で示されるリスト内の位置からパケットが 5 スポット以上離れることはないと言って間違いありません。)
電気通信の普及とコンピュータ サイエンスの発展にとっての歴史的重要性を考えると、私がこのような問題に対処した最初の人物ではなかったと思います。私の質問、それから:
周期的に変化するキーが与えられた場合、上記のようなほぼ順序付けられたシーケンスを並べ替えるよく知られたアルゴリズムはありますか?
欠けているアイテムの大きなチャンクを許容するこのアルゴリズムのバリエーションはありますか? これらのチャンクは任意の長さにできると仮定しましょう。256 個以上の不足アイテムのチャンクが特に心配です。
最初のアルゴリズムのアイデアはいくつかありますが、2 番目のアルゴリズムにはありません。しかし、自分のアルゴリズムが正しいことを検証するために工数を費やす前に、ベル研究所 (または他の場所) の誰かが 30 年前にこれを改善していないことを確認したかったのです。