方法洗牌列表的效率问题。代码示例如下:
Random
OrderBy
代码工作原理
Random
这段代码使用OrderBy
类生成随机数。对于
<code class="language-csharp">var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next());</code>
为其分配一个随机数。然后,根据这些随机数对列表进行升序排序,从而实现洗牌效果。
这种洗牌算法的效率如何? <..>虽然这段代码可以实现洗牌的目的,但其效率存在问题。 Random
ordered
OrderBy
更好的方法和考虑因素x => r.Next()
更有效的洗牌算法是Fisher-Yates洗牌算法,它简单易懂,并且具有O(n)的时间复杂度。 편의성과 명확성을 위해 Fisher-Yates 알고리즘을 사용하여 확장 방법을 만들 수 있습니다.
위 내용은 `renderby '를`random'과 함께 사용 하는가 목록을 셔플하는 효율적인 방법입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!