摘要: 归并排序是基于归并操作的一种稳定排序算法,并且也是分治思想的一个典型的应用。在稳定的排序过程下,它可以达到O(n * log(n))的时间复杂度,但是该算法需要依赖一个O(n)的辅助排序空间。 归并排序算法的主要思想为,给出排序区间,将区间等分为两份,并且分别对两个区间进行排序,待两个区间排序完毕, 阅读全文
posted @ 2021-09-19 20:52 Yeehok 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 堆排序是一种高效率的排序方法,它充分的利用了二叉堆的性质,无需借助额外的辅助空间,并且拥有O(n*log(n))的时间复杂度。 首先这里我从二叉堆讲起。二叉堆是一种具有一定逻辑关系的完全二叉树(这里需要和满二叉树做一下区分),它始终满足:任意节点的值均大于(或小于)其子节点,满足该条件的二叉堆又叫大 阅读全文
posted @ 2021-09-19 20:51 Yeehok 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 二分查找算法在程序设计中并不陌生,它可以在O(log(n))的时间复杂度内找到自己想要的值。 首先需要待查找序列有序,然后需要你想要寻找的值即可,本文给出三种二分查找的例子,即: 精确二分查找,如果找不到返回error 进行精确查找,如果找不到则返回第一个小于该数值的元素的位置 进行精确查找,如果找 阅读全文
posted @ 2021-09-19 15:42 Yeehok 阅读(198) 评论(0) 推荐(0) 编辑