这是客户端/服务器应用程序系统。同步条目顺序的算法
客户端应用程序可以进入脱机模式,有时会与服务器同步。 (比如GMail离线)
多个客户端可以连接到服务器,因此每个客户端都可以添加,编辑和删除它的条目,并像SVN一样同步这些更改(碰撞可能会发生,但这不是问题。)
添加,编辑和删除条目的算法是微不足道的。服务器可以为每个新条目创建一个唯一的ID,客户端使用这些ID进行更新和删除。
新的要求是条目的排序。
有两个客户端应用程序 - x,y。并且它们存储条目-A,B,C和D.这些条目排列为DCBA,因此A的顺序属性是4,B是3,C是2,D是1.
- x:DCBA: A(4),B(3),C(2),d(1)
- Y:DCBA:A(4),B(3),C(2),d(1)
客户ÿ创建d和C
- x与新条目E:DCBA:A(4),B(3),C(2),d(1)
- y:D-E-C-B-A:A(5),B(4),C(3),D(1),E(2)
双方客户端与服务器同步后。
- X:DECBA:A(5),B(4),C(3),d(1),E(2)
- Y:DECBA:A(5),B(4) ,C(3),D(1),E(2)
如何同步这些订单信息?
*附加测试*
Cient X除去d和C,但客户端ÿ创建d和C之间新项E
- X:BA:A(2) ,B(1)
- Y:DECBA:A(5),B(4),C(3),d(1),E(2)
同步后。
- X:CBA:A(5),B(4),C(3),d(1),E(2)
- Y:CBA:A(5),B(4) ,C(3),d(1),E(2)