下面是归并排序的 Ruby 代码实现:
def merge_sort(arr)
return arr if arr.size <= 1
mid = arr.size / 2
left_half = arr[0..mid-1]
right_half = arr[mid..arr.size]
merge(merge_sort(left_half),
merge_sort(right_half))
end
def merge(left_half, right_half)
sorted_arr = []
until left_half.empty? || right_half.empty?
if left_half.first <= right_half.first
sorted_arr << left_half.shift
else
sorted_arr << right_half.shift
end
end
sorted_arr.concat(left_half).concat(right_half)
end
array=[23,12,1,2,4,5,11,10,5,9,3]
cx=merge_sort(array)
puts(cx)
这个函数接受一个数组作为参数,并使用归并排序的算法将数组进行排序。在归并排序的过程中,数组被递归地划分为较小的子数组,直到每个子数组只有一个元素。然后,这些子数组被逐对合并,直到整个数组被排序。这里使用了一个辅助函数 merge,用于合并两个已排序的子数组。
1
2
3
4
5
5
9
10
11
12
23
开发工具:RubyMine 2022.2.1
CSDN ChitGPT
微信截屏工具Alt+A