算法
Yeehok
一个有梦想的Coder
展开
-
堆排序(Heap Sort)
堆排序是一种高效率的排序方法,它充分的利用了二叉堆的性质,无需借助额外的辅助空间,并且拥有O(n*log(n))的时间复杂度。原创 2016-12-20 14:38:40 · 273 阅读 · 0 评论 -
二分查找(Binary Search)
二分查找算法在程序设计中并不陌生,它可以在O(log(n))的时间复杂度内找到自己想要的值。 首先需要待查找序列有序,然后需要你想要寻找的值即可,本文给出三种二分查找的例子,即:精确二分查找,如果找不到返回error进行精确查找,如果找不到则返回第一个小于该数值的元素的位置进行精确查找,如果找不到则返回第一个大于该数值的元素的位置原创 2016-09-05 17:09:44 · 375 阅读 · 0 评论 -
归并排序(Merge Sort)
归并排序是基于归并操作的一种稳定排序算法,并且也是分治思想的一个典型的应用。在稳定的排序过程下,它可以达到O(n * log(n))的时间复杂度,但是该算法需要依赖一个O(n)的辅助排序空间。 归并排序算法的主要思想为,给出排序区间,将区间等分为两份,并且分别对两个区间进行排序,待两个区间排序完毕,使用O(n)的贪心的方法合并这两个有序区间。其中划分的过程最多占用O(log(n))的时间复杂原创 2017-08-03 19:03:21 · 339 阅读 · 0 评论