Jana의 Collections.sort는 어떤 종류의 알고리즘을 사용합니까? 빠른 정렬과 비슷할 수도 있습니다. Java에도 Array.sort가 있습니다. 그들은 다른가요?Java는 어떤 정렬 알고리즘을 채택합니까?
답변
이러한 모든 종류의 질문에 대해서는 항상 설명서를 시작하는 것이 가장 좋습니다.
Collection.Sort documentation은 "안정적이고 적응력이 뛰어난 반복적 인 mergesort"를 사용하며 "구현은 Tim Peters의 목록 정렬에서 파이썬 (TimSort)을 채택했다"고 명시합니다.
소트 알고리즘은 변성 머지 소트 (낮은 서브리스트에서 가장 높은 소자가 높은 서브리스트에 낮은 소자보다 작은 경우, 머지 생략 이다)이다. Array documentation
구현상의주의에서
는 : 소트 알고리즘은 블라디미르 Yaroslavskiy, 존 벤틀리, 조슈아 블로흐하여 듀얼 피벗 퀵 입니다. 이 알고리즘은 다른 퀵 소트가 2 차 성능으로 저하되는 많은 데이터 세트에서 O (n log (n)) 성능을 제공하며 일반적으로 기존 (1 피벗) Quicksort 구현보다 더 빠른 입니다.
더 최신의 문서에 링크하는 것이 좋습니다. Java 7 [대체 된 mergesort 대체] (https://bugs.openjdk.java.net/browse/JDK-6804124) 및 [documentation] (http://docs.oracle.com/) com/javase/7/docs/api/java/util/Collections.html # sort % 28java.util.List % 29)가 구현 정보를 변경했습니다. – zapl
와우. 머리를 가져 주셔서 감사합니다. –
정말 고마워요. 먼저 문서를 확인해야합니다. –
- 1. DeviceMotion은 가속도계 및 자이로에서 태도를 계산하기 위해 어떤 알고리즘을 채택합니까?
- 2. MySQL은 어떤 정렬 알고리즘을 사용합니까?
- 3. qsort는 어떤 정렬 알고리즘을 사용합니까?
- 4. Ruby의 정렬 방법은 어떤 알고리즘을 사용합니까?
- 5. 이 정렬 방법은 어떤 알고리즘을 사용합니까?
- 6. .NET의 Array.Sort() 메서드는 어떤 정렬 알고리즘을 사용합니까?
- 7. PHP는 어떤 종류의 정렬 알고리즘을 사용합니까?
- 8. qsort()는 어떤 정렬 알고리즘을 사용합니까?
- 9. table.sort는 어떤 알고리즘을 사용합니까?
- 10. 정렬 알고리즘이 큰 정렬을 위해 어떤 정렬 알고리즘을 사용 하시겠습니까?
- 11. 정렬 알고리즘을 사용하는 경우
- 12. 파이썬에서 정렬 알고리즘을 타이밍을
- 13. Java는 어떤 힙 구현을 사용합니까?
- 14. 버블 정렬 알고리즘을 따르십시오
- 15. 정렬 알고리즘을 향상시키는 방법?
- 16. 어떤 종류의 알고리즘을 사용해야합니까?
- 17. randperm은 어떤 알고리즘을 기반으로합니까?
- 18. Math.random은 어떤 알고리즘을 사용합니까?
- 19. 왜 소프트웨어 개발 프로세스를 채택합니까?
- 20. 정렬 알고리즘을 사용하여 문자열 목록 정렬 (C#)
- 21. 첫 번째 숫자로만 루비 정렬 알고리즘을 정렬
- 22. 정렬 알고리즘을 병렬로 실행하려면 어떻게해야합니까?
- 23. DataView 정렬 방법 - 어떤 정렬 알고리즘이 사용됩니까?
- 24. Math.random의 구현은 어떤 알고리즘을 기반으로합니까?
- 25. MongoDB가 _id에 어떤 알고리즘을 사용합니까?
- 26. scipy.optimize.leastsq는 어떤 최적화 알고리즘을 사용합니까?
- 27. 어떤 TSP 휴리스틱 알고리즘을 채택해야합니까?
- 28. 어떤 경로 찾기 알고리즘을 사용해야합니까?
- 29. LAPACK의 DGESVD는 어떤 알고리즘을 구현합니까?
- 30. Java는 플랫폼의 이상성에 어떤 영향을 줍니까?
API는 무엇을 말합니까? – trashgod
'Collections.sort'는'Arrays.sort (collection.toArray())'로 전달됩니다. 입력 유형에 따라 여러 알고리즘을 사용합니다 (예 : [TimSort] (http://en.wikipedia.org/wiki/Timsort)). 또는 Java 8에서 멋진 병렬 포크 조인 정렬. – zapl
Java7 및 Java8을 사용 중입니다. 당신의 의견에 감사드립니다. –