美文网首页Python中文社区python自学大数据 爬虫Python AI Sql
经典算法代码python实现及总结(持续更新)

经典算法代码python实现及总结(持续更新)

作者: 爱吃西红柿嘛 | 来源:发表于2020-04-02 22:25 被阅读0次
学习前福利

快速排序
快速排序的核心思想在于:首先在这个序列中随便找一个数作为基准数,然后将这个序列中所有比基准数大的数放在该数字的右边,比基准数小的数放在该数字的左边。第一轮排序结束之后,再分别对已经好的基准书左边(比基准数小)和基准书右边(比基准书大)的数字序列重复上述操作,用递归形式即可实现快速排序,完成对整个序列的排序。

def quicksort(a, left, right):
    if left>right:
        return -1
    temp=a[left]
    i=left
    j=right
    while i!=j:
        while a[j]>=temp and i<j:
            j-=1
        while a[i]<=temp and i<j:
            i+=1
        if i<j:
            a[i],a[j]=a[j],a[i]
    a[left]=a[i]
    a[i]=temp    
    quicksort(a,left,i-1)
    quicksort(a,i+1,right)

a=[4, 2, 7,8, 0, 1, 5,23]
quicksort(a,0,len(a)-1)
print(a)

按奇偶排序数组
借用快速排序思想,i从前往后,j从后往前

class Solution:
    def sortArrayByParityII(self, A):
        i = 0
        j = len(A) - 1
        while i < len(A) and j >= 0:
            while i < len(A):
                if A[i] % 2 == 0:
                    i = i + 2
                else:
                    break
            while j >= 0:
                if A[j] % 2 != 0:
                    j = j - 2
                else:
                    break
            if i < len(A) and j >= 0:
                A[i], A[j] = A[j], A[i]
        return A

s = Solution()
print(s.sortArrayByParityII([4, 2, 5, 7, 8, 9]))


技术篇目录

基础篇

python基础知识点总结之语言篇
python基础知识点总结之第三方库篇
软件工程及数据库相关知识篇

爬虫系列

python爬虫初体验,爬取中国最好大学网大学排名
python爬虫再体验,爬取文章浏览量,俗人必备工具

基础算法系列

python自定义解决base64编码
Python代码破解路由器config.bin从入门到放弃

经典算法系列

经典算法代码python实现及总结

相关文章

网友评论

    本文标题:经典算法代码python实现及总结(持续更新)

    本文链接:https://www.haomeiwen.com/subject/zofqphtx.html