![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
备战2015笔试
文章平均质量分 50
一个追风的产品经理
这个作者很懒,什么都没留下…
展开
-
备战2015笔试之一直接插入排序
/*直接插入排序的思路:将初始序列分为有序部分和无序部分两个序列。初始时有序序列为第一个元素过程是:每次将无序部分的第一个元素拿出来与前面有序部分的最后一个元素比较,直到第一个位置或者遇到前面的元素比这个元素大,本次排序结束。时间复杂度分析:考虑最坏的情况:初始时第一个元素不用比较,从第二个元素开始有2种可能,即比第一个元素大或者小直观的讲就是在第一个元素的左边或者右边原创 2014-09-19 10:35:24 · 379 阅读 · 0 评论 -
二叉树的建立
个人想的一种建立二叉树的方法,先创建节点,节点保存到节点数组中,通过下标来原创 2014-10-13 18:20:21 · 1371 阅读 · 0 评论 -
二叉树的遍历1
昨天在公司打了一天杂没什么作为,只能自己挤时间去看书。现在发现了如果自己不想学原创 2014-10-11 14:46:53 · 382 阅读 · 0 评论 -
二叉树的遍历2(java实现)
在前面的二叉树的遍历1中已经讨论了二叉树的各种遍历方法,但只是理论上的说明并没有实际上的代码,因为当时没有原创 2014-10-14 16:50:06 · 329 阅读 · 0 评论 -
图的广度优先搜索
广度优先搜索(Breadth-First-Seracj)BFS,BFS是原创 2014-10-15 17:19:47 · 618 阅读 · 0 评论 -
深度优先搜索
深度优先搜索(Detph_First_Search)DFS,算法思路很简单,就是原创 2014-10-15 17:39:08 · 296 阅读 · 0 评论 -
二叉树遍历的非递归实现
前面对二叉树的遍历都是用的原创 2014-10-15 11:04:35 · 311 阅读 · 0 评论 -
图的深度优先搜索和广度优先搜索的总结
昨天让这两个搜索算法搞的萎靡不振的,今天重新来原创 2014-10-16 10:51:11 · 907 阅读 · 0 评论 -
单源点的最短路径
求带权有向图的最短路径,最常用的是迪杰斯特拉算法。算法的描述为:原创 2014-10-16 17:39:49 · 433 阅读 · 0 评论 -
进程、线程、生产者消费者问题
一周没有更新博客了,最近公司的事情有点忙,而且前面的知识感觉又开始生疏原创 2014-11-20 10:28:07 · 1872 阅读 · 0 评论 -
三种简单排序方式的总结
三种简单的排序通常是指:直接插入排序、冒泡排序、简单选择排序,这三种方式排序效率都非常的低因此称他们为简单排序(思路最简单)。直接插入排序的思路:先把待排序列分为有序序列和无序序列,初始化时第一个元素为有序元素,排序时每次从无序序列中取第一个元素,查找其在有序序列中的位置,由于是有序序列只要找到第一个比它小的元素就找到了其位置。关键部分代码:for(int i=1;i<n;i++)原创 2015-08-25 17:46:00 · 946 阅读 · 0 评论 -
快速排序总结
算法的实现很关键,但是思路更关键,有了思路实现就很容易。快速排序的思路:一趟快速排序后将待排序列分为以关键字(从待排序列中选取的)为轴的两部分,左半部分小于key,右半部分大于key,然后分别对两部分分别递归进行快速排序,直到low>high。每一趟快速排序的思路:首先从high处往前扫描第一个小于key的元素,将其赋值给a[low++](别忘了low以前老是对快速排序记不太清晰的原因原创 2015-08-26 15:44:42 · 592 阅读 · 0 评论 -
sizeof 和strlen的总结
a、首先sizeofz是运算符,在头文件中typedef 为unsigned int,其值在编译时计算的b、strlen()是函数,是运行时计算,参数必须是字符型指针(char *),返回值是字符串的长度(从代表该字符的第一个地址开始,直到遇到第一个NULL结束)。c.sizeof()不同参数的不同含义:1.数组:编译时数组空间的大小,在c99之前这个很好理解,因为c89要求必须在编译期间原创 2015-08-27 15:58:43 · 275 阅读 · 0 评论 -
线索二叉树
线索二叉树产生的原因:首先是看到存储二叉树时有很多空指针没有用其实是原创 2014-10-13 13:32:28 · 358 阅读 · 0 评论 -
希尔排序的总结2
希尔排序是对直接插入排序的升级原创 2014-10-11 11:05:47 · 392 阅读 · 0 评论 -
2014腾讯校招笔试题分析----数据结构篇(一套试题引发的血案)
一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)A.有序数组原创 2014-10-27 15:44:39 · 5353 阅读 · 0 评论 -
冒泡排序总结
/*冒泡排序和直接插入排序的思想个人感觉很像,都是将待排序序列分为有序序列和无需序列。只不过冒泡排序每一趟都能确定一个元素的最终位置,而直接插入排序最坏的情况下,最后一次才能确定。冒泡排序的思路:一趟排序选择顶端(末端)的一个元素,顺序的和其他的所有元素做比较,直到遇到有比它大的(小的)就停止,拿这个比较大的元素继续作比较,知道到达末端,本趟排序结束。若是从顶端(即下标最小的一原创 2014-09-21 17:15:24 · 666 阅读 · 0 评论 -
双端冒泡排序
/*双端冒泡就是一趟排序同时确定一个最大元素和一个最小元素,那么总的排序时间相比传统的冒泡排序会降低一半左右的时间,结束条件为当下沉的下限等于上浮的上限。即没有要上浮的元素也没有要下沉的元素。此时排序结束。时间复杂度为O(n*n/2)向上取整数,但总体的数量级还是在O(n^2)。*/public class BubbleSort03{ public static void m原创 2014-09-22 17:07:21 · 591 阅读 · 0 评论 -
快速排序
/*快速排序的基本思路:采用分治法的思想,每一次将通过key值将待排序咧分为左边小于等于key,右边大于key的部分。具体的方法是分别设low和high指针,初始时low=0,high=length-1.从high往前找第一个不大于key的元素然后和key交换,然后从low往后找第一个大于key的元素,然后和key交换。直到low=high。一趟排序结束。然后分别对左边和右边在分别进行快原创 2014-09-23 10:54:42 · 380 阅读 · 0 评论 -
希尔排序的理解
public class ShellSort02{ public static void main(String[]args){ int a[] = {0,13,12,5,32,4,14,56,8}; int increment = a.length; int i,j; do{ increment = increment/3+1; for(i=increment原创 2014-09-26 16:18:05 · 415 阅读 · 0 评论 -
希尔排序
先看一下希尔排序的来历:首先说一下直接插入排序,在元素较少、元素基本有序的情况下排序的效率非常高,但是这两个条件都过于苛刻,首先说排序的元素的数量不可能太小否则排序也失去了意义,元素基本有序的情况也几乎不可能。这就使得直接插入排序无用武之地了,于是就发痒没条件制造条件的精神发明了希尔排序。首先解决元素数量要少的问题:分组。这样每组的元素数就降低了好几倍。第二基本有序,只有最后一次排序满足了原创 2014-09-25 18:10:23 · 437 阅读 · 0 评论 -
简单选择排序
/*直接选择排序,排序思路:每一次排序从无序集合中选取一个最小的元素和无序序列中第一个元素交换,这样有序集合中加一,无序集合中减一,知道无序集合为空,排序结束。用数学的描述是:初始序列为R[0...n],有序集合为空,无序集合为R[0...n],第一趟排序从无需集合中选取一个最小的元素与R[0]交换,第i趟排序有序集合为R[0...i-1],从无序集合R[i...n]中取出最小的和R[i-原创 2014-09-22 20:28:51 · 498 阅读 · 0 评论 -
堆排序
/*堆排序的思路:首先构造一个堆。大顶堆的特点是根节点都大于或等于左右孩子的值。小顶堆的特点是根节点都小于或等于左右孩子的值。然后输出堆顶元素:输出方法是先将堆顶元素和最后一个元素交换输出,然后调整堆,直到输出到最后一个元素位置。堆排序也分两部分第一部分:构造堆。第二部分输出堆顶元素和调整堆。再说一下堆这种结构,时间这种结构并不是真实存在的只是一种构造,根据二叉树的特点节点i的双亲原创 2014-09-29 16:32:49 · 367 阅读 · 0 评论 -
二叉平衡树
想要了解B+和B-树,要先了解二叉平衡树:这是一种原创 2014-10-24 17:24:55 · 503 阅读 · 0 评论 -
各种内部排序的总结
前面已经把基本的内部排序分别介绍了下,原创 2014-10-08 16:20:41 · 603 阅读 · 0 评论 -
二叉树遍历的非递归算法
上一篇文章讲的都是递归的遍历方法,其实没什么技术含量原创 2014-10-11 17:42:44 · 366 阅读 · 0 评论 -
希尔排序的总结
希尔排序的基本思路:把整个排序分成若干个直接插入排序(具有相同增量),逐步缩小增量,直到增量为1,这时候一趟直接插入排序就可以了使得整个序列变成一个有序序列。关键处代码为:ShellSort(int a[],int n){ int increment = n; do{ increment = increment / 3 + 1;//缩小增量 OneShellSort(a,in原创 2015-08-27 13:26:44 · 622 阅读 · 0 评论