最重要的算法
Posted djfboai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最重要的算法相关的知识,希望对你有一定的参考价值。
快速排序
def quick_sort(li,left,right): if left<right: mid=partition(li,left,right) #首先给li中最左边的元素归位,返回归位后元素的索引 quick_sort(li,left,mid-1) #接着给归位了的元素左边的,左端列表的,最左侧元素进行归位 quick_sort(li,mid+1,right) #给归位了的元素的右边的,右端列表的,最左侧元素进行归位 def partition(li,left,right): tmp=li[left] while left<right: #从右边找比tmp小的 while left<right and li[right]>=tmp: #当右边比tmp大时,一直找,直到找到比tmp小的数 right-=1 li[left]=li[right] #当找到了比tmp小的数就把右边的值赋值给左边 #从左边找比tmp大的 while left<right and li[left]<=tmp: #当左边的数比tmp小时,一直找,直到找到比tmp大的数 left+=1 li[right]=li[left] #当找到了比tmp大的数,把左边的大数,赋值给右边 li[left]=tmp return left import random l=list(range(0,13)) random.shuffle(l) quick_sort(l,0,len(l)-1) print(l) 时间复杂度: 最优:O(n) 最差:O(n^2) 时间复杂度:O(nlogn)
以上是关于最重要的算法的主要内容,如果未能解决你的问题,请参考以下文章
有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]