python 排序方法

一、冒泡排序:

nums = [1,3,2,5,4,9,6]

def bubbleSort(alist):
    n = len(alist)
    for passnum in range(n-1,-1,-1):
        for i in range(passnum):
            if alist[i] > alist[i+1]:
                alist[i],alist[i+1] = alist[i+1],alist[i]
    return alist

print(bubbleSort(nums))

改进:提前排好序就停止

def shortBubbleSort(alist):
    n = len(alist)
    right = n-1
    exchange = True
    while right < 0 and exchange:
        flag = False
        for i in range(right):
            if alist[i+1] < alist[i]:
                flag = True
                alist[i],alist[i+1] = alist[i+1],alist[i]
        right -= 1
    return alist
print(shortBubbleSort(nums))

 二、选择排序:

def selectionSort(alist):
    for i in range(len(alist)-1,0,-1):
        pos = 0
        for j in range(1,i+1):
            if alist[pos] < alist[j]:
                pos = j
        alist[pos],alist[i] = alist[i],alist[pos]
    return alist
print(selectionSort(nums))

三、插入排序:

def insertionSort(alist):
    for index in range(1,len(alist)):

        currentvalue = alist[index]
        pos = index
        while pos > 0 and alist[pos-1] > alist[pos]:
            alist[pos] = alist[pos-1]
            pos -= 1
        alist[pos] = currentvalue
    return alist
print(insertionSort(nums))

四、希尔排序

五、归并排序

六、快速排序

猜你喜欢

转载自blog.csdn.net/L_goodboy/article/details/130956704