当前位置: 移动技术网 > IT编程>脚本编程>Python > 排序算法总结-python实现

排序算法总结-python实现

2019年04月19日  | 移动技术网IT编程  | 我要评论

火灭网,黑木明纱快播,春天在哪里伴奏mp3

最近在复习软考,把看到的排序算法整理了一下,之所以用python写,是因为python写起来简单....好吧,后来写的时候发现有些地方用c写还方便些。python虽然简洁,但用起来效率感觉还是有些低,不过这不是重点啦。。。

# -*- coding: utf-8 -*-

def bubblesort(data):
    '''冒泡排序: 时间复杂度最好o(n),平均o(n*n),最坏o(n*n),辅助空间 o(1),算法稳定
       n个数,每次从第一个数开始和相邻的数比较,将大的冒泡到后面去。第一趟将最大的冒泡到最后,
       然后第二次只需比较0~n-1,将其中最大的冒泡到n-1,依次下去...总共进行n-1趟排序即可
    '''
    if data:
        for i in range(len(data)):
            for j in range(len(data)-i-1):
                if data[j]>data[j+1]:
                    data[j],data[j+1]=data[j+1],data[j]
    return data

def quicksort(data,low,high):
    '''快速排序:o(n*logn),o(n*logn),o(n*n),o(n*logn),不稳定
        冒泡的改进,被认为是当前最优秀的内部排序算法,实现基于分治法:分解-解决-合并。
        基本思想:
        1.从数列中取出一个基数,
        2.将数列中比他大的放在右边,小的在左边。
        3.两边区间重复2,直到各区间只有一个数。
        整个算法中的基数就是个坑,跳来跳去,总之比他小始终放一边,大的放另一边就行
        参考:https://blog.csdn.net/morewindows/article/details/6684558
    '''
    if low =base:
                right-=1
            if left =0 and data[j] > key:
                data[j+1]=data[j]
                j-=1
            data[j+1]=key
    return data

def selectsort(data):
    '''选择排序: 时间复杂度最好o(n*n),平均o(n*n),最坏o(n*n),辅助空间 o(1),算法不稳定
        n个数,每一趟从待排序列l2中选择最大(或最小)数顺序放在已排好序列l1后面(或前面)
        总共经过n-1趟可排好,与插入排序相比,都是将数据分为已排和未排序列并将未排元素整理
        到已排序列中,不同的是插入排序在未排序列中按序整理,选排则是按大小选择整理。
    '''
    if data:
        for i in range(len(data)-1):
            minnum=i
            for j in range(i+1,len(data)):#在l2中寻找最小值
                if data[j] 1:
        gap=n/2 
        while gap > 0:   
            for i in range(gap):#按步长插入排序
                for j in range(i+gap,n,gap):
                    if data[j] =0 and data[k] > key:
                            data[k+gap]=data[k]
                            k-=gap
                        data[k+gap]=key
            gap/=2
    return data
                    
        
if __name__ =="__main__":
    data=[3,5,1,56,3,7,34,21,8]
    print data
    #insertsort(data)
    #bubblesort(data)
    #selectsort(data)
    #shellsort(data)
    quicksort(data,0,len(data)-1)
    print data 
            
            
            
            


如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网