![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
zhifeng687
这个作者很懒,什么都没留下…
展开
-
起泡算法
冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。[1]转载 2016-09-19 22:54:11 · 675 阅读 · 0 评论 -
堆排序
给定一个整形数组a[]={16,7,3,20,17,8},对其进行堆排序。 首先根据该数组元素构建一个完全二叉树,得到然后需要构造初始堆,则从最后一个非叶节点开始调整,调整过程如下:20和16交换后导致16不满足堆的性质,因此需重新调整这样就得到了初始堆。即每次调整都是从父节点、左孩子节点、右孩子节点三者中选择最大者跟父节点进行交换(交换之后可能造成被交转载 2016-09-19 23:30:35 · 353 阅读 · 0 评论 -
环形蛇形矩阵
环形矩阵这个题目在c语言考试上出现过,然而当时我感觉有点吃力,现在我在小白这本书上看到了这种比较精炼的算法,所以把他试了一遍,自我感觉良好,分享出来。一下是10*10的矩阵。1 2 3 4 5 6 7 8 9 1036 37 38 39 40 41 42 43 44 1135 64 65 66 67 68 69 70 45 1234 63 84 85 86 87 88 71 4...原创 2016-09-21 13:03:42 · 405 阅读 · 0 评论 -
找到字符串中第一个不重复的元素
题目:在一个字符串中找到第一个没有重复元素的字符并返回。例:输入:"yellow" 返回:“y” 输入:"tooth" 返回:“h” 输入:“coco” 返回:“”按照人类思维来判断的话,比较该元素与后面的元素,如果相同,再比较下一个元素。如果都不相同,是在内循环之后判断的伪代码:for原创 2016-10-11 22:38:58 · 3121 阅读 · 3 评论 -
从亿级数据量的url中找出出现次数最多的前十个url
流程:mapToPair + reduceByKey:计算每个url的出现次数;mapToPair + sortByKey:反转PairRDD,按照降序的方式对url的出现次数进行排序;take():获取前十个url。sparkConf.put("es.resource", indexName + "/" + indexType); sparkConf....原创 2016-10-12 21:20:08 · 2052 阅读 · 0 评论 -
elasticsearch2.2之index映射参数的not_analyzed属性
官方文档:index索引index这个参数可以控制字段应该怎样建索引,怎样查询。它有以下三个可用值:· no: 不把此字段添加到索引中,也就是不建索引,此字段不可查询· not_analyzed:将字段的原始值放入索引中,作为一个独立的term,它是除string字段以外的所有字段的默认值。· analyzed:string字段的默认值,会先进行分析后,再把分析的term结果存入...原创 2016-10-13 14:37:31 · 2895 阅读 · 0 评论 -
层次打印二叉树
import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; /**public class TreeNode { int val = 0; TreeNode left =转载 2016-10-15 10:24:34 · 586 阅读 · 0 评论 -
插入排序
一、基本思想通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。如果输入数组已经是排好转载 2016-09-30 08:42:36 · 191 阅读 · 0 评论 -
归并排序
归并排序,其的基本思路就是将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。如何让这二组组内数据有序了?可以将A,B组各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数列就完成了归并排序。此话摘自:白话归并排序我的js写法:原创 2016-10-21 14:14:53 · 859 阅读 · 0 评论 -
算法复杂度
考研题,求时间复杂度,请说明下理由,假定问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为()A O(N) B O(NlogN) C O(N²) D O(N²logN)数学萌伊6342014-09-26优质解答答案是B根据条件递推:T(N) = N/2+2T(N/2) = N转载 2016-05-17 17:02:16 · 4652 阅读 · 1 评论 -
循环队列
在循环队列中,在浪费一个数组元素空间的情况下,队列空的条件是front=rear,队列满的条件是(rear+1)%queue size=front ,队列长度为(rear-front+queuesize )%queuesize 从队首删除一个元素,执行front=(front +1)%queuesize,从队尾插入一个元素后,执行rear=(rear+1)%queue si原创 2016-09-12 16:44:21 · 255 阅读 · 0 评论 -
括号匹配算法
先说明,在计算算数表达式的值时,可用两个栈作为辅助工具。int prool(char a[],int n){ top=-1;i=0;flag=1;//假设采用顺序栈,flag为配对标志while(i{ if(a[i]=='(' || a[i]=='{' || a[i]=='[') s[++top]=a[i] ;else {原创 2016-09-12 17:57:40 · 6764 阅读 · 0 评论 -
把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间
2、字符移位小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1输出描述:对于每组数据,输出移位后的字符串。输入例子:AkleBiCeilD输出例子:kleieilABCD转载 2016-09-13 15:54:46 · 4268 阅读 · 0 评论 -
用stringbuffer替换字符串的空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。/*问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换!问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。转载 2016-09-14 10:22:23 · 4493 阅读 · 0 评论 -
红黑树图文讲解
————————————二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查...转载 2015-08-04 00:15:32 · 4484 阅读 · 8 评论