我目前正在开发一款Android应用,用户可以通过拖放来按照任意顺序对列表进行排序。因此,我必须将排序顺序存储在某个列的变量中。我想给每行分配一个数字,例如100000、200000、300000等等。如果用户将项目移动到100000和200000之间,则它的排序号码成为其邻居的平均值,即150000。这样,与使用常规的i+1排序值相比,我只需要更新单个行的排序号码。
什么是最有效的方法?大数字是否使用更多资源或需要更长时间进行排序?我预计只有不到100行,因此,如果大数字需要更长时间进行排序,我最好使用较小的数字并经常“重置”(当两个排序号码汇聚到一起时)。我知道对于如此少的行,如果我只使用i+1排序方法并每次更新我的数据库中的每一行,那么这并不重要。但是,我还将我的SQLite数据与BAAS同步,其中大部分都不允许批量保存。因此,对于我修改的每一行,我必须进行1次API请求。这就是为什么我试图在重新排序项目时尽量减少我修改的行数。
任何帮助都将不胜感激。