【发布时间】:2012-02-24 21:38:24
【问题描述】:
在 PHP manual for usort() 中,它声明:
如果两个成员比较相等,则它们在排序数组中的相对顺序是未定义的。
还有,
引入了一种新的排序算法。 cmp_function 不保持元素比较相等的原始顺序。
那么我的问题是:如果两个元素相等(例如,用户定义的函数返回 0)会发生什么? 我正在使用这个函数,显然相等的项目在排序后的数组中随机排列。
【问题讨论】:
-
你的意思是它们在其他相等的值中随机排列吗?当然,它们不会随机插入排序集中的任何位置。
-
我不明白这个问题......你自己回答了:相等元素的顺序没有定义。
-
那么如果没有定义,那么数组中相等的元素是通过什么方式排列的呢?这是我不明白的
-
@linkyndy 似乎相等的项目附加在其他相等的项目之后
-
在我看来也是,我想确定一下。