<reponame>HKCM/Python
def sample_sort(a):
    '''
    简单排序
    从第一个元素开始，遍历整个列表将最小的放到前面
    '''
    l = len(a)
    for i in range(0,l-1):
        for j in range(i,l):
            if a[j] < a[i]:
                a[j],a[i] = a[i],a[j]
        print('第'+str(i+1)+'次排序后：',a)
    print(a)
    

def bubble_sort(a):
    '''
    冒泡排序
    从第一个元素开始，比较相邻的两个元素将较大的放到后面
    '''
    l = len(a)
    for i in range(l-1):
        for j in range(1,l-i):
            if a[j-1] > a[j]:
                a[j-1],a[j] = a[j],a[j-1]
        print('第'+str(i+1)+'次排序后：',a)
    print(a)
    
def insert_sort(a):
    '''
    插入排序
    [4,3,2]
    '''
    l = len(a)
    for i in range(1,l):
        key = a[i]
        j = i-1
        while j >= 0 and key < a[j]:
            a[j+1] = a[j]
            j -= 1
        a[j+1] = key
    print(a)      

if __name__ == '__main__':
    a = [8,7,6,5,4,3,2,1]
    insert_sort(a)
            
def sample_sort(a):
    '''
    简单排序
    从第一个元素开始，遍历整个列表将最小的放到前面
    '''
    l = len(a)
    for i in range(0,l-1):
        for j in range(i,l):
            if a[j] < a[i]:
                a[j],a[i] = a[i],a[j]
        print('第'+str(i+1)+'次排序后：',a)
    print(a)
    

def bubble_sort(a):
    '''
    冒泡排序
    从第一个元素开始，比较相邻的两个元素将较大的放到后面
    '''
    l = len(a)
    for i in range(l-1):
        for j in range(1,l-i):
            if a[j-1] > a[j]:
                a[j-1],a[j] = a[j],a[j-1]
        print('第'+str(i+1)+'次排序后：',a)
    print(a)
    
def insert_sort(a):
    '''
    插入排序
    [4,3,2]
    '''
    l = len(a)
    for i in range(1,l):
        key = a[i]
        j = i-1
        while j >= 0 and key < a[j]:
            a[j+1] = a[j]
            j -= 1
        a[j+1] = key
    print(a)      

if __name__ == '__main__':
    a = [8,7,6,5,4,3,2,1]
    insert_sort(a)
简单排序     从第一个元素开始，遍历整个列表将最小的放到前面 冒泡排序     从第一个元素开始，比较相邻的两个元素将较大的放到后面 插入排序     [4,3,2]