![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【Algorithm】基础算法
Thereisnospon
在校本科生,渣渣一枚,正在向成为一名大牛而努力~
展开
-
基础算法-快速排序
快速排序选择一个基准值x,把比x小的全部放在左边,把大于等于x的值放在右边,然后把x放到这个边界.这样,如果左边是升序的,那么因为x比左边的都大,左边区间加上x 的这个区间同样是升序的,如果此时右边也是升序的,那么因为x的值小于等于右边的值,则整个数组是升序的而每个区间的排序,可以递归调用快速排序完成,如果区间只有一个值就不用排序了。public class QuickSort { publi原创 2017-02-23 19:05:16 · 315 阅读 · 0 评论 -
基础算法-堆排序
堆:任意节点的值大于(小于)左右子节点的值,子节点也为堆。 如果对于存储在数组里的堆的话, 节点下标为 j, 它左子节点下标为 2*j+1, 右子节点下标为 2*j+2;堆排序(升序):调整堆:如果节点的左子节点与右子节点都已经是大根堆,调节该节点也为大根堆.如果该节点的左右子节点的值都小于该节点,结束。(已经是大根堆)选定一个最大的子节点 j,将当前根节点的值与最大子节点 p 的值交换,这样,a原创 2017-02-23 18:25:03 · 260 阅读 · 0 评论