.NET의 Array.Sort()
메서드는 어떤 정렬 알고리즘을 사용합니까?.NET의 Array.Sort() 메서드는 어떤 정렬 알고리즘을 사용합니까?
답변
빠른 종류를 사용합니다. 그러나 모든 데이터가 똑같이 잘되지는 않습니다!
reflector를 사용하여 : 1D 배열의 가장 일반적인 경우 오름차순으로 네이티브 dll에서 정렬합니다. 그러나 다른 경우는 관리 코드에서 정렬되며 거의 최적화가 적용되지 않습니다. 따라서 속도는 일반적으로 훨씬 느립니다.
실제로, 보이는 것처럼 쉽지 않습니다. .NET은 입력 및 크기에 따라 다양한 정렬 알고리즘 세트를 구현하는 것 같습니다. 나는 CLR에서 Array.Sort()
을 디 컴파일하는 데 사용하고 그들은 힙, 삽입 및 퀵 포트를 사용하고있는 것 같습니다.
... 명확하게 여기에 문서화되어 있으므로 https://msdn.microsoft.com/en-us/library /6tf1f0bc.aspx –
Array.Sort()
세의 한 입력의 크기에 따라 정렬 알고리즘 선택 : 크기가 16 개 이하의 원소
- 경우 삽입 정렬 알고리즘을 사용한다.
- 크기가
2 * log^N
을 초과하는 경우 (N
은 입력 배열의 범위 임) 힙 정렬 알고리즘을 사용합니다. - 그렇지 않으면, 그것은 퀵 알고리즘을
소스를 사용 Array.Sort(Array) Method on MSDN.
해당 주제를 다시 읽어야합니다. 특히 상품 # 2가 잘못되었습니다. * Array.Sort는 대부분의 경우 Quicksort를 사용하도록 설계된 Introsort를 구현합니다 (삽입 정렬을 사용하는 최적화가 추가됨). 작은 파티션의 경우), 항목 순서가 Quicksort에 대한 병리학적인 결과가되는 것을 발견하면 Heapsort로 변경됩니다. –
- 1. MySQL은 어떤 정렬 알고리즘을 사용합니까?
- 2. Ruby의 정렬 방법은 어떤 알고리즘을 사용합니까?
- 3. PHP는 어떤 종류의 정렬 알고리즘을 사용합니까?
- 4. .NET FormsAuthentication.Encrypt() 메서드는 어떤 암호화 방법을 사용합니까?
- 5. 파이썬은 fractions.gcd()에서 어떤 알고리즘을 사용합니까?
- 6. MsOffice는 파일 암호화에 어떤 알고리즘을 사용합니까?
- 7. Javascript Array.sort 구현?
- 8. Microsoft Office 2010은 암호화를 위해 어떤 알고리즘을 사용합니까?
- 9. Gmail/Facebook은 상황에 맞는 광고를 게재하기 위해 어떤 알고리즘을 사용합니까?
- 10. .net의 타이머 - 언제 사용합니까?
- 11. 누구든지 .NET의 System.IO.IsolatedStorage를 사용합니까?
- 12. System.Data.DataTableExtensions의 CopyToDataTable 메서드는 어떻게 사용합니까?
- 13. 이 메서드는 동일한 출력을 사용합니까?
- 14. .NET에서 DES 알고리즘을 어떻게 사용합니까?
- 15. 메서드는 .NET의 데이터 멤버와 함께 serialize됩니까?
- 16. main 메서드는 어떤 클래스에 속합니까?
- 17. 룸바는 어떤 플랫폼/언어를 사용합니까?
- 18. 데이터베이스 계층에서 멤버쉽 메서드는 어떻게 사용합니까?
- 19. 피셔가 왜 가장 유용한 셔플 알고리즘을 사용합니까?
- 20. JPEG는 행 주요 압축 알고리즘을 사용합니까?
- 21. in_array()는 이진 검색 알고리즘을 사용합니까?
- 22. 에 Array.sort()는 IAM
- 23. JavaScript의 내부 동작 Array.sort ([compareFunc]);
- 24. .net의 web.config를 사용하여 브라우저 캐싱을 사용합니까?
- 25. Java에서 정렬 알고리즘을 만들려고 시도하지 못했습니다.
- 26. 어떤 joomla 모듈을 사용합니까?
- 27. 어떤 소프트웨어를 스크럼에 사용합니까?
- 28. Ghuloum은 어떤 제도를 사용합니까?
- 29. 어떤 아키텍처가 system.runtime.serialization.ISerializable을 사용합니까?
- 30. jquery.com은 어떤 툴팁을 사용합니까?
정렬 방법에 사용되는 알고리즘의 안정성과 관련된 관련 [스레드] (https://stackoverflow.com/q/148074/465053). – RBT
Related [thread] (https://stackoverflow.com/q/2792074/465053) : 대신 LINQ 기반 정렬을 사용하십시오. – RBT