python有什么排序算法?这3个常见的排序算法你要知道

很多小伙伴想知道python中有什么排序算法?那么今天小编就通过这篇文章来给大家介绍3个在python中常见的排序算法,感兴趣的小伙伴可以耐心阅读一下小编的文章,相信大家一定能够从中收获不少的知识 。

python有什么排序算法?这3个常见的排序算法你要知道

文章插图
小编通过统计,我们在python开发中,一般常用的排序算法有以下三个:
  • 冒泡排序,相邻位置比较大小,将比较大的(或小的)交换位置;
  • 选择排序,遍历选择一个最小的数与当前循环的第一个数交换;
  • 快速排序:将子段的第一个元素做为中值,先从右向左遍历,如过比中值大high-1,如果比中值小,将这个值放到low那里 。
下面我们来一一讲解一下 。
(1)冒泡排序
相邻位置比较大小,将比较大的(或小的)交换位置,详细代码如下:
def maopao(a):   for i in range(0,len(a)):        for j in range(0,len(a)-i-1):            if a[j]>a[j+1]:                temp = a[j+1]                a[j+1] = a[j]                a[j] = temp                #print(a)        #print(a)    print(a)(2)选择排序
遍历选择一个最小的数与当前循环的第一个数交换,详细代码如下所示:
【python有什么排序算法?这3个常见的排序算法你要知道】def xuanze(a):    for i in range(0,len(a)):        k=i        temp = a[i]        for j in range(i,len(a)):            if a[j]<temp:                temp = a[j]                k = j        a[k] = a[i]        a[i] = temp    print(a)(3)快速排序
将子段的第一个元素做为中值,先从右向左遍历,如过比中值大high-1,如果比中值小,将这个值放到low那里 。然后从左向右开始遍历,如果左侧的比中值大,将他放到high那里 。当low>=high时,将中值的值赋给low 。代码如下所示:
a =[7,1,3,2,6,54,4,4,5,8,12,34]def sort(a,low,high):    while low < high:        temp = a[low]        while low < high and a[high]>=temp:            high = high-1        a[low]=a[high]        while low<high and a[low]<temp:            low = low+1        a[high]=a[low]                  a[low]=temp    return lowdef quicksort(a,low,high):    if low<high:        middle = sort(a,low,high)        quicksort(a,low,middle)        quicksort(a,middle+1,high)        print(a)sort(a,0,len(a)-1)quicksort(a,0,len(a)-1)print(a)

推荐阅读