2013-04-09 3 views
1

VS2012, .NET Framework 4.5를 사용하고 있습니다. 어떤 정렬 알고리즘이 DataView.Sort에 이 사용되는지 알고 싶습니다.DataView 정렬 방법 - 어떤 정렬 알고리즘이 사용됩니까?

내 코드 :

var table = new DataTable(); 
table.Columns.Add("Word"); 

table.DefaultView.Sort = "Word";//after that row, DefaultDataView is sorted 

그래서 알고리즘을 정렬하는 것은 여기에 사용되는지?

답변

1

DataView의 Sort 메서드는 Quicksort 알고리즘을 구현합니다. 임의의 중간 점을 선택하고 중간 점보다 낮은 모든 값을 왼쪽에, 높은 값을 모두 오른쪽에 배치합니다. 그런 다음 왼쪽과 오른쪽 섹션에 재귀 적으로 적용됩니다. 결국 섹션이 하나의 배열 멤버로 구성되어있는 작은 섹션으로 나눌 수없는 섹션으로 재귀 호출되고 정렬이 완료됩니다. big-O 표기법을 사용하면이 알고리즘은 O (n log n) 시간으로 실행되며 정렬 알고리즘에서 예상하는 것보다 훨씬 효율적이라고 말할 수 있습니다. 정렬의 각 반복이 인덱스 집합을 두 개의 동일한 부분으로 나누는 한 우리는 기수 2의 로그 인 을 처리합니다. 이 모든 것을 증명하려면 System.Data 코드를 계측하고 런타임 성능을 확인해야합니다 테스트 도구로.

UPDATE :

당신은 Reflector Utility 한 번 봐 수 있고 ...이 게시물을 따라 그것의 모든 DataView Sort

+0

이 답변을 감사합니다 여기에 설명했다. quicksort가 사용된다는 것을 어떻게 압니까? .NET 리플렉터를 시도했지만 정렬이 실제로 이루어지는 지점을 찾을 수 없습니다. – FrenkyB

관련 문제