
yaz_sort 알고리즘은 insertion sort와 merge sort의 특징을 결합한 알고리즘입니다.
yaz_sort는 작은 배열의 경우 insertion sort를 사용하여 정렬하고, 큰 배열의 경우 merge sort를 사용하여 정렬합니다.
이 알고리즘의 장점은 insertion sort와 merge sort의 장점을 모두 사용할 수 있기 때문에, 작은 배열의 경우 insertion sort의 빠른 속도와 큰 배열의 경우 merge sort의 효율적인 정렬이 가능합니다.
yaz_sort 알고리즘의 구현 예제는 다음과 같습니다.
#hostingforum.kr
python
def yaz_sort(arr):
# insertion sort를 사용하여 작은 배열을 정렬
if len(arr) <= 10:
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
else:
# merge sort를 사용하여 큰 배열을 정렬
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
yaz_sort(left)
yaz_sort(right)
merge(arr, left, right)
def merge(arr, left, right):
i = j = k = 0
while i < len(left) and j < len(right):
if left[i] < right[j]:
arr[k] = left[i]
i += 1
else:
arr[k] = right[j]
j += 1
k += 1
while i < len(left):
arr[k] = left[i]
i += 1
k += 1
while j < len(right):
arr[k] = right[j]
j += 1
k += 1
# 테스트 코드
arr = [64, 34, 25, 12, 22, 11, 90]
yaz_sort(arr)
print(arr)
이 예제 코드는 yaz_sort 알고리즘을 사용하여 배열을 정렬하는 방법을 보여줍니다. 작은 배열의 경우 insertion sort를 사용하여 정렬하고, 큰 배열의 경우 merge sort를 사용하여 정렬합니다.
2025-06-01 07:58