09 2021 档案

摘要:快速排序与归并排序一样,都使用了分治思想,即将数据拆分然后进行排序。 快速排序的最佳情况时间复杂度为O(NlogN),最糟复杂度则为O(N^2),但是它的平均性能是最佳的,并且快速排序的一个优势就是快速排序可以在数据本身进行排序,不需要开辟额外的内存空间(归并排序需要提前开辟一块O(N)的内存空间用 阅读全文
posted @ 2021-09-23 15:44 可乐社区 阅读(90) 评论(0) 推荐(0)
摘要:堆排序是一种不管最佳情况还是最糟情况,时间复杂度都是O(NlogN)的一种排序算法。 这种算法将目标源数组抽象化成一个堆(heap),并且根据增序降序的要求再分别转化为大顶堆和小顶堆。 堆是一种数据结构,可以看成一种近似的完全二叉树,只不过该二叉树必须满足左侧填充。而大顶堆的特性则是父节点必须大于等 阅读全文
posted @ 2021-09-18 14:50 可乐社区 阅读(132) 评论(0) 推荐(0)
摘要:首先什么是最大和子数组: 即从数组某一位置开始的连续数组的所有元素的和要保证最大 例如13,-25,20,-3,-16,-23,18,20,-7,12,最大子数组即为18,20,-7,12,和为43,且是连续的 在数组中找到最大和子数组有三种情况: 1.最大子数组在源数组的中间位置的左侧 2.最大子 阅读全文
posted @ 2021-09-17 11:20 可乐社区 阅读(256) 评论(0) 推荐(0)
摘要:归并排序采用了分治思想(分而治之) 分治思想即为了解决一个特定的问题,将问题分为很多个小的子问题,之后对这些子问题进行递归,一边递归一边拆分子问题直至无法拆分。拆分完毕后,将这些独立的子问题解决,将每个子问题解决的答案加在一起就是一整个问题的答案。 首先是归并排序在《算法导论》中的一个简单表现例子: 阅读全文
posted @ 2021-09-14 23:02 可乐社区 阅读(77) 评论(0) 推荐(0)