기수 정렬 알고리즘은 동일한 위치를 기준으로 값을 그룹으로 정렬하는 일종의 버킷 정렬 알고리즘입니다. 어쩌면 이해하기 조금 어려울 수도 있습니다. 기수 정렬 알고리즘의 원리에 대한 다음 예를 볼 수 있습니다. radix 분류 알고리즘의 원칙 예제 배열 [121,432,564,23,1,45,788]을 지정하고 그림과 같이 배열별로 배열을 정렬합니다. 한 자리 값, 그리고 십 자리 값을 정렬하고 마지막으로 백 자리 값을 정렬합니다. 정렬된 배열의 최종 출력은 [001,023,045,121,432,564,788]
def countingSort(array, place): size = len(array) output = [0] * size count = [0] * 10 for i in range(0, size): index = array[i] // place count[index % 10] += 1 for i in range(1, 10): count[i] += count[i - 1] i = size - 1 while i >= 0: index = array[i] // place output[count[index % 10] - 1] = array[i] count[index % 10] -= 1 i -= 1 for i in range(0, size): array[i] = output[i] def radixSort(array): # Get maximum element max_element = max(array) place = 1 while max_element // place > 0: countingSort(array, place) place *= 10 data = [121, 432, 564, 23, 1, 45, 788] radixSort(data) print(data)
위 내용은 기수 정렬 알고리즘의 원리를 구현하기 위해 Python을 사용하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!