美文网首页
【2021-07-05】算法导论学习:day 1

【2021-07-05】算法导论学习:day 1

作者: 喵吃猪 | 来源:发表于2021-07-06 10:34 被阅读0次

关键概念

T(n): worst case - max time for sorting any input of size n
T(n): expected time - the weighted average time for sorting input of size n

Asymtotic Notation
\theta \ - \,notation:\ drop\,low\,order\,terms\,and\,ignore\,leading\,constants
Ex.\quad 3n^3+n^2-5n+6060\rightarrow \theta(n^3)

排序算法

十大经典排序算法 | 菜鸟教程

Merge Sorting - 归并排序

引用自菜鸟教程

python实现

def MergeSort(left, right):
    # 比较传过来的两个序列left,right,返回一个排好的序列
    i, j = 0, 0
    result = []
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    result += left[i:]  # 这时候i或者j到了序列的最后
    result += right[j:]

    print(result)
    return result


def SortByMerge(arr, size):
    if size <= 1:
        return arr

    i = int(size/2)
    left = SortByMerge(arr[:i], i)
    right = SortByMerge(arr[i:], size - i)
    return MergeSort(left, right)

arr = [12, 11, 13, 5, 7, 6]
print(SortByMerge(arr, len(arr)))

其余重点

递归算法分析

  • 代换法
  • 树形图法
  • 主方法

相关文章

  • 【2021-07-05】算法导论学习:day 1

    关键概念 T(n): worst case - max time for sorting any input of...

  • 【2021-07-05】算法导论学习:简介

    过去的几年中陆续学习了不少编程知识,在工作生活中都起到了很大作用。 但随着时间推移,逐渐发现非科班与科班从业者在各...

  • 算法导论学习笔记(1)

    《算法导论》一共包含两部分,即算法分析和算法设计。 什么是算法分析? “算法分析是关于计算机程序性能和资源利用的理...

  • 2018-08-08 算法导论(2.1 插入排序)

    算法导论学习101 首先,对于插入排序算法的大致描述为下输入为: < a1, a2, a3, ... , an >...

  • 算法导论笔记

    读算法导论 记录一下读算法导论的过程 1.算法 如果问我什么是算法(思考中) 利用数据结构,考虑时间以及空间效率,...

  • 快排【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第7章:快...

  • 算法导论1

  • 数据挖掘算法

    机器学习导论 机器学习的方法是基于数据产生的"模型"(model)的算法,也称"学习算法"(learning al...

  • 插入排序【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第二章:2...

  • 归并排序【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第二章:2...

网友评论

      本文标题:【2021-07-05】算法导论学习:day 1

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