美文网首页
python 常见排序算法

python 常见排序算法

作者: 周周周__ | 来源:发表于2020-04-08 21:51 被阅读0次
一、冒泡排序

两两对比,大的向后移位,多次循环

def maopao(mylist):
    length = len(mylist)
    for i in range(length - 1, -1, -1):
        for j in range(0, i):
            num = mylist[j]
            if mylist[j] > mylist[j + 1]:
                mylist[j] = mylist[j + 1]
                mylist[j + 1] = num
mylist = [1, 3, 45, 67, 8, 9, 75, 33, 22]
maopao(mylist)
print(mylist)

最好的情况,顺序时间复杂度:0(n), 最坏的时间复杂度: o(n^2)

二、快速排序
def kuaipai(mylist):
    left = []
    right = []
    num = []
    print(mylist)
    if len(mylist) < 2 or len(set(mylist)) == 1:
        return mylist
    else:
        a = mylist[0]
        for i in mylist:
            if i > a:
                right.append(i)
            elif i == a:
                num.append(i)
            else:
                left.append(i)
        return kuaipai(left) + kuaipai(num) + kuaipai(right)


mylist = [1, 3, 45, 22, 67, 8, 1, 3, 9, 75, 33, 22, 22, 22]
va = kuaipai(mylist)
print(va)



# 列表推推倒式写法
def kauipai(mylist):
  if len(mylist) < 2:
     return mylist
  a = mylist[0]
  left = [i for i in mylist if i < a]
  right = [i for i in mylist if i >a]
  num = [i for i in mylist if i ==a]
  return kuaipai(left) + kuaipai(num) + kuaipai(right)
mylist = [1, 3, 45, 67, 8, 9, 75, 33, 22]
va = kuaipai(mylist)
print(va)

快排是从中取出一个基准数,进行对比,晓大的在左边,小的在右边。然后再排序左边,和右边
时间复杂度:最好的韦o(nlogn), 最坏为o(n^2)
三、快排

def xuanze(mylist):
    for i in range(len(mylist) - 1):
        num = i
        for j in range(i + 1, len(mylist)):
            if mylist[j] < mylist[num]:
                num = j
        mylist[num], mylist[i] = mylist[i], mylist[num]
    return mylist


mylist = [1, 3, 45, 67, 8, 9, 75, 33, 22]
va = xuanze(mylist)
print(va)

相关文章

  • Python排序算法有哪几种?

    python排序算法有哪些?python中常见的排序算法有:插入排序、选择排序、冒泡排序、快速排序、归并排序、希尔...

  • 数据结构与算法

    常见排序算法 堆排序 算法大全 算法大汇总

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • python 常见排序算法

    1.冒泡排序 对数组中每个位置的数据,从后往前推,依次比较相邻的两个数,如果后面的数较小,则交换两者位置,如果一次...

  • python 常见排序算法

    一、冒泡排序 两两对比,大的向后移位,多次循环 最好的情况,顺序时间复杂度:0(n), 最坏的时间复杂度: o(n...

  • 排序算法

    常见的排序算法 常见的排序算法有:插入、希尔、选择、冒泡、归并、快速、堆排序。。。 插入排序 算法步骤一、从数组的...

  • Python知识点:常见算法的python实现

    提到排序算法,常见的有如下几种:冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序、希尔排序;查找算法最常见...

  • 排序

    排序是生活中常常会遇到的问题,也是面试中经常会问的算法,本文简单记录了常见的排序算法,使用C++与Python分别...

  • 排序算法详细代码实现

    算法分类 算法时间复杂度 选择排序 插入排序 C++实现 Python实现 冒泡排序 Python实现 归并排序 ...

  • 排序算法(四) 希尔排序(插入排序的进化)

    参考Java排序算法(四):希尔排序常见排序算法 - 希尔排序 (Shell Sort) 希尔排序算法是按其设计者...

网友评论

      本文标题:python 常见排序算法

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