組み込みシステムでは、1バイトの長さの配列インデックス(0-255、次に0にロールバック)を使用することに限定されています。配列は追加エントリを継続的に取得し続けますが、配列の全長は固定され、255よりはるかに小さくなります(たとえば5)。古い値は単純に上書きされます(FIFOスタック)。ロールオーバーする1バイトのインデックスでソート順が正しくなる
通常、最近の最初の(または最後の)ソート順は、単純に配列インデックスの数値ソートです(7,8,9,10,11または17,18,19,20,21または124,125,126,127,128など)。 )。
インデックスが255に達したときを除いて、ロールオーバーします。今、値はこのような場合に
253、254、255、0、1 OR 254、255、0、1、2
ような単純な番号順(0、1、253、254、255を見て)は、最近の最初の(または最後の)ソートではありません。
このような場合、正しい並べ替え順序を見つけるにはどうすればよいでしょうか?
Honzaの応答から、ロールオーバーが検出されたら、すべての数値を1の2の補数として扱います。今度は254は-2になり、255は-1になり、1は1のまま残り、2は2のままになります。インデックスの順番は最新順です! – PVS