zoukankan      html  css  js  c++  java
  • 17.常见排序算法

    常见排序算法 :插入,选择,冒泡

    1.插入排序
    • 时间复杂度:O(n²)
    • 空间复杂度:O(1)
    • 稳定性:稳定
    # 插入排序
    def insert(list):
        for i in range(len(list)):
            for j in range(i):
                if list[i] < list[j]:
                    list.insert(j,list.pop(i))
                    break
        return list
    
    list = [2, 6, 4, 3]
    
    if __name__ == '__main__':
        insert(list)
        print(list)

    2.选择排序

    • 时间复杂度:O(n²)
    • 空间复杂度:O(1)
    • 稳定性:不稳定

    # 选择排序
    def select(list):
        for i in range(len(list)):
            x = i
            # i是最小下表
            for j in range(i, len(list)):
                if list[j] < list[i]:
                    x = j
            list[i], list[x] = list[x], list[i]
        return list
    list = [2, 6, 4, 3]
    
    if __name__ == '__main__':
        select(list)
        print(list)

    3.冒泡排序

    • 时间复杂度:O(n²)
    • 空间复杂度:O(1)
    • 稳定性:稳定

    # 冒泡排序
    def bubblesort(list):
        for i in range(len(list)):
            for j in range(i, len(list)):
                if list[i] > list[j]:
                    list[i], list[j] = list[j], list[i]
        return list
    
    if __name__ =='__main__':
        list = [7.8, 5.3, 34, 2.5, 91]
        bubblesort(list)
        print(list)
  • 相关阅读:
    1_Flask开启debug
    29_使用celery发送短信
    00_celery介绍(处理耗时任务)
    28_django限制请求方法装饰器
    27_扩展User模型
    05-3_单链表的实现
    05-2_单向链表
    05-1_链表的定义
    04-2_Python中的线性表
    04-1_线性表的操作
  • 原文地址:https://www.cnblogs.com/lvjing/p/9841822.html
Copyright © 2011-2022 走看看