zoukankan      html  css  js  c++  java
  • 排序算法(1)

    l = [4,2,5,3,9,8,1]
    print(l)
    #冒泡排序
    #冒泡排序的时间复杂度为O(n^2)。
    '''
    for i in range(1,len(l)):
        for j in range(len(l)-i):
            if l[j]>l[j+1]:
                l[j],l[j+1] = l[j+1],l[j]
    '''
    #选择排序
    #选择排序的时间复杂度为O(n^2)
    '''
    for i in range(len(l)):
        for j in range(i+1,len(l)):
            if l[i] > l[j]:
                l[i],l[j] = l[j],l[i]
    '''
    #插入排序法
    #简单插入排序的时间复杂度也是O(n^2)。
    '''
    for i in range(1,len(l)):
        for j in range(i):
            if l[i] < l[j]:
                l.insert(j,l.pop(i))
    '''
    #快速排序法
    #快速排序是不稳定的,其时间平均时间复杂度是O(nlgn)。
    '''
    def quickSort(arr,firstIndex,lastIndex):
        if firstIndex<lastIndex:
            divIndex=partition(arr,firstIndex,lastIndex)
     
            quickSort(arr,firstIndex,divIndex)       
            quickSort(arr,divIndex+1,lastIndex)
        else:
            return
     
     
    def partition(arr,firstIndex,lastIndex):
        i=firstIndex-1
        for j in range(firstIndex,lastIndex):
            if arr[j]<=arr[lastIndex]:
                i=i+1
                arr[i],arr[j]=arr[j],arr[i]
        arr[i+1],arr[lastIndex]=arr[lastIndex],arr[i+1]
        return i
    quickSort(l,0,len(l)-1)
    '''
  • 相关阅读:
    [转]shell getopts用法
    [转]KVM虚拟化原理探究
    [转]存储相关的一些概念解释
    [转]绑定设备到驱动
    [转] SCSI, FC, ISCSI协议
    [转译]zoned storage device
    CORS jsonp
    orange---openresty.---authorization,-129.0.1.227,jwt
    vue
    hive sqoop,sqoop-hive import data
  • 原文地址:https://www.cnblogs.com/mdevelopment/p/9463305.html
Copyright © 2011-2022 走看看