数据结构与算法
kobexzf
这个作者很懒,什么都没留下…
展开
-
常见算法题-面试用
1 两个单向链表是否相交及找到第一个交点相交意味着Y型,即后面一段是相同的,分别遍历两链表,若尾节点相同,则相交,遍历时记录链表长度,长的链表先走长度差后两链表同时遍历原创 2022-04-22 22:55:36 · 381 阅读 · 0 评论 -
线性表,栈,队列,串
一个线性表是n个具有相同特性的数据元素的有限序列(有序性)。1 顺序存储:数组,通过存储位置维护有序性2 链式存储:链表,通过指针维护有序性双向链表,循环链表(有环,从head出发回到head,若为6形环,快慢指针判别,一个跳1步,一个2步,是否会相遇)栈:LIFO,栈顶操作1 顺序存储:顺序栈,使用数组2 链式存储:链表队列:FIFO,队尾插入,队头删除,deque(双端队列):...原创 2019-02-22 19:47:58 · 144 阅读 · 0 评论 -
外部排序
外部排序常采用的排序方法也是归并排序外存中4500个记录,内存只能容纳750个记录,6次读取分别进行内部排序,排序好的分别为Segment_1…内存空间划分为三份,每份大小250个记录,Segment_1读取250个记录放入一份,Segment_2读取250个记录放入一份,最后一份为输出缓冲区,开始归并,输出缓冲区满后写到磁盘,某个输入空了,继续读取250个记录,直到完成Segment_1和S...原创 2019-02-27 16:55:42 · 107 阅读 · 0 评论 -
树
二叉树:i层(i>=1), 第i 层最多2的i-1次方节点,总节点最多为2的i次方-1满二叉树:全满 完全二叉树:全满的基础上顺序减少了一部分。顺序存储:如通过0表明此节点不存在元素,下标为0存储根节点链式存储:数据,左右指针遍历:先序遍历二叉树:先中间节点(根节点),先序遍历左子树,先序遍历右子树中序:中序遍历左子树,根节点,中序遍历右子树后序:后序遍历左子树,后序遍历...原创 2019-02-25 19:49:01 · 192 阅读 · 0 评论 -
查找
二分查找public static int binarySearch(Integer[] srcArray, int des) { //定义初始最小、最大索引 int low = 0; int high = srcArray.length - 1; //确保不会出现重复查找,越界 while (low <= high) { //计算出...原创 2019-02-26 14:44:40 · 98 阅读 · 0 评论 -
内部排序
稳定:不改变同等大小的顺序,7,6(1),6(2),5 ,不会变成6(2),6(1)内部排序:内存中完成外部排序:数据量大,需外存访问,可内存中放一部分,先对一部分排序,后面再调取数据排序1 冒泡排序:多次比较,一次比较一半概率交换,先把最大的放右边public void bubbleSort(int []a){ int len=a.length; ...原创 2019-02-26 16:31:38 · 117 阅读 · 0 评论