假设我们按记录中的数字对一些记录进行排序:
Name Number_of_Language_Known
John 3
Mary 2
Peter 3
Mike 1
...
如果我们也不是按 排序Name
,那么 John 和 Peter 的顺序就不能保证,但如果记录从未改变,它不应该是随机的吗?我认为在大多数环境中应该是正确的(也就是说,没有其他任何变化,并且排序进行了两次)。
也就是说,如果我们对它进行一次排序,它不会是 Peter 在 John 之前,第二次是 John 在 Peter 之前。
这是因为在 Ruby on Rails 环境中,如果从 DB 中获取记录,然后通过 Ruby 函数进行排序,并作为原始页面内容打印,则顺序是一种方式,但如果随后通过 AJAX 请求数据,则对于该数字字段中具有相同数字的记录,排序后的数组元素可以具有不同的顺序,这看起来很奇怪。
更新:如果数据来自数据库,那么在获取记录时数据库可能会有不可预测的顺序。但是,如果记录首先按主 ID 排序怎么办?此外,如果数据已经在数据结构中,我不知道任何常见的排序算法每次都会产生不同的排序顺序。也就是说,订单不保证但不是随机的。