β

算法学习-排序 python实现

Rico's blog 52 阅读

基础复习之算法—-排序

冒泡排序

#!/usr/bin/env python
# coding=utf-8
__author__ = 'Administrator'
def bubble_sort(a_list):
    len1=len(a_list)
    for index_i in range(len1-1):
        for index_j in range(len1-1-index_i):
            if a_list[index_j]>a_list[index_j+1]:
                a_list[index_j],a_list[index_j+1]=a_list[index_j+1],a_list[index_j]
    return a_list
print bubble_sort([3,5,1,6,8,111,55,77,22])
>>> [1, 3, 5, 6, 8, 22, 55, 77, 111]

快速排序

def quick_sort(a_list,left,right):
    #base case
    if left>right:
        return
    temp= a_list[left] # 基准数
    index_i=left
    index_j=right
    while index_i!=index_j:
        # 先从右往左找,比基数小的数
        while a_list[index_j]>=temp and index_i<index_j:
            index_j -= 1
        while a_list[index_i]<=temp and index_i<index_j:
            index_i += 1
        #交换两个数位置
        if index_i <index_j:
            a_list[index_i],a_list[index_j]=a_list[index_j],a_list[index_i]
    #最后将基准数,放到i=j 的地方
    a_list[left],a_list[index_i]=a_list[index_i],temp
    quick_sort(a_list,left,index_i-1)
    quick_sort(a_list,index_j+1,right)
    return a_list
a_list=[6,1,2,7,10,8,9,3,4,5,10,8]
print quick_sort(a_list,0,len(a_list)-1)
>>> [1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 10]

基础复习之算法—-排序

冒泡排序

作者:Rico's blog
一个人前行,一个人捉虫,等着一个人
原文地址:算法学习-排序 python实现, 感谢原作者分享。