python アルゴリズムクイックリファレンス:中央値ソート
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python アルゴリズムクイックリファレンス:中央値ソート相关的知识,希望对你有一定的参考价值。
def sort(target):
median_sort(target, 0, len(target) - 1)
return target
def median_sort(target, left, right):
if left < right:
# find median
mid_point = (left + right) / 2
min_value = target[left]
max_value = target[left]
index = left
while index <= right:
min_value = min(min_value, target[index])
max_value = max(max_value, target[index])
index += 1
median_value = (max_value + min_value) / 2
median_point = target.index(median_value)
# swap median to mid_point
swap(target, mid_point, median_point)
# partition left to right
left_point = left
while left_point <= mid_point - 1:
if target[left_point] > median_value:
right_point = mid_point + 1
while right_point <= right:
if target[left_point] > target[right_point] and target[right_point] < median_value:
swap(target, target.index(target[left_point]), target.index(target[right_point]))
break
right_point += 1
left_point += 1
# swap left part
median_sort(target, left, mid_point - 1)
# swap right part
median_sort(target, mid_point + 1, right)
def swap(target, a, b):
target[b], target[a] = target[a], target[b]
return target
以上是关于python アルゴリズムクイックリファレンス:中央値ソート的主要内容,如果未能解决你的问题,请参考以下文章
python アルゴリズムクイックリファレンス:插入ソート
python アルゴリズムクイックリファレンス:中央値ソート
c_cpp 插入ソート,バブルソート,クイックソートの各种アルゴリズムソースコード(计测用主关数も付属)
c_cpp A *アルゴリズム
c_cpp 遗伝的アルゴリズム
php リファレンス渡しの小さなメモ