美文网首页
python sort list 未完待续

python sort list 未完待续

作者: 白菜的白v | 来源:发表于2019-04-03 23:10 被阅读0次
#冒泡排序
def bubble_sort(l):
    l_length = len(l)
    for i in range(1, l_length - 1):
        for j in range(0, l_length - 1):
            if l[j] > l[j + 1]:
                l[j], l[j + 1] = l[j + 1], l[j]

#选择排序
def selection_sort(l):
    l_length = len(l)
    for i in range(0, l_length -1):
        n_min = i
        for j in range(i+1, l_length):
            if l[n_min] > l[j]:
                n_min = j
        if n_min != i:
            l[i], l[n_min] = l[n_min], l[i]

#快速排序
def quick_sort(l, start=None, end=None):
    l_length = len(l)
    if start is None:
        start = 0
    if end is None:
        end = l_length - 1
    if start >= end:
        return
    k = l[start]
    i, j = start, end
    while i != j:
        while i < j and l[j] >= k:
            j -= 1
        while i < j and l[i] <= k:
            i += 1
        if i < j:
            l[i], l[j] = l[j], l[i]
    l[start], l[i] = l[i], k
    quick_sort(l, start, i - 1)
    quick_sort(l, i + 1, end)

测试:

l1 = [randint(0, 100) for i in range(0, 20)]
l2 = copy(l1)
l3 = copy(l1)
print("before sort, l1: %s" % l1)
bubble_sort(l1)
print("after sort, l1: %s" % l1)
print("before sort, l2: %s" % l2)
selection_sort(l2)
print("after sort, l2: %s" % l1)
print("before sort, l3: %s" % l3)
quick_sort(l3)
print("after sort, l3: %s" % l3)

输出:

before sort, l1: [1, 49, 81, 84, 71, 54, 20, 48, 41, 13, 20, 31, 92, 43, 74, 100, 50, 86, 87, 69]
after sort, l1: [1, 13, 20, 20, 31, 41, 43, 48, 49, 50, 54, 69, 71, 74, 81, 84, 86, 87, 92, 100]
before sort, l2: [1, 49, 81, 84, 71, 54, 20, 48, 41, 13, 20, 31, 92, 43, 74, 100, 50, 86, 87, 69]
after sort, l2: [1, 13, 20, 20, 31, 41, 43, 48, 49, 50, 54, 69, 71, 74, 81, 84, 86, 87, 92, 100]
before sort, l3: [1, 49, 81, 84, 71, 54, 20, 48, 41, 13, 20, 31, 92, 43, 74, 100, 50, 86, 87, 69]
after sort, l3: [1, 13, 20, 20, 31, 41, 43, 48, 49, 50, 54, 69, 71, 74, 81, 84, 86, 87, 92, 100]

相关文章

网友评论

      本文标题:python sort list 未完待续

      本文链接:https://www.haomeiwen.com/subject/dexxiqtx.html