
算法
秘平乐
我们一路奋战,不是为了改变世界,而是为了不让世界改变我们。
展开
-
java 使用二叉堆实现 TopK 算法
首先 本小白是参考这里写链接内容 和这里写链接内容 两位 博主的文章 1.首先,什么是二叉堆,维基百科上是这么描述的:当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆。 2.二叉堆一般用数组来表示。如果根节点在数组中的位置是1,第n个位置的子节点分别在2n和 2n+1。因此,第1个位置的子节点在2和3,第2个位置的子原创 2017-05-26 20:19:06 · 2237 阅读 · 0 评论 -
快速排序的两种方式及其时间复杂度
首先快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。方法一:该方法的基本思想是:1.先从数列中指定一个数作为基准数。2.进行分区,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。设定一个数据源数组dataSour原创 2017-06-14 01:57:17 · 2695 阅读 · 0 评论 -
含有字母与特殊符号的字符串(abc--de---fghi),局部调整顺序使之变成(fghi---de--abc)
一、看到这个问题,首先想到的思路是:1、先创建一个空的StringBuilder result2、再创建一个空的StringBuilder periodResult3、从后向前遍历字符串,如果是字符的话,就把字符 添加到 periodResult中,直至遍历到特殊字符,把periodResult 倒序添加到result中,再把特殊字符按顺序添加到result中。4、把 per...原创 2018-10-09 23:33:21 · 552 阅读 · 2 评论