Tag: random random

为什么在排序中使用Random导致

我尝试使用任一代码来改组字节(List)列表: myList.Sort((a, b) => this._Rnd.Next(-1, 1)); 要么 myList.Sort(delegate(byte b1, byte b2) { return this._Rnd.Next(-1, 1); }); 他们抛出以下错误: 无法排序,因为IComparer.Compare()方法返回不一致的结果。 要么值不等于自身,要么重复一个值与另一个值进行比较会产生不同的结果。 x:'{0}’,x的类型:'{1}’,IComparer:'{2}’。 使用随机而不是字节的比较函数有什么问题? 我尝试使用LINQ函数,它的工作原理。 var myNewList = myList.OrderBy(s => Guid.NewGuid()); var myNewList = myList.OrderBy(s => this._Rnd.NextDouble()); 我确实读过这些方法比Fisher-Yates shuffle慢,只给O(n)运行时。 但只是想知道使用Sort函数和随机。