算法
文章平均质量分 80
疾飞鱼
这个作者很懒,什么都没留下…
展开
-
经典算法面试题及答案
【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…. public class exp2{public static void main(String args[]){int i=0;for(转载 2016-05-27 14:16:53 · 2826 阅读 · 0 评论 -
数据结构与算法之美--打怪升级路7
什么是栈?后进者先出,先进者后出,这就是典型的“栈”结构。从栈的操作特性来看,是一种“操作受限”的线性表,只允许在端插入和删除数据。为什么需要栈?栈是一种操作受限的数据结构,其操作特性用数组和链表均可实现。但,任何数据结构都是对特定应用场景的抽象,数组和链表虽然使用起来更加灵活,但却暴露了几乎所有的操作,难免会引发错误操作的风险。所以,当某个数据集合只涉及在某端插入和删除数据,且满足后...翻译 2018-12-09 22:54:59 · 161 阅读 · 0 评论 -
数据结构与算法之美--打怪升级路8
什么是递归?递归是一种非常高效、简洁的编码技巧,一种应用非常广泛的算法,比如DFS深度优先搜索、前中后序二叉树遍历等都是使用递归。方法或函数调用自身的方式称为递归调用,调用称为递,返回称为归。基本上,所有的递归问题都可以用递推公式来表示。为什么使用递归?递归的优缺点?优点:代码的表达力很强,写起来简洁。缺点:空间复杂度高、有堆栈溢出风险、存在重复计算、过多的函数调用会耗时较多等问...翻译 2018-12-09 22:53:19 · 488 阅读 · 0 评论 -
数据结构与算法之美--打怪升级路6
如何轻松写出正确的链表代码?理解指针或引用的含义1.含义:将某个变量(对象)赋值给指针(引用),实际上就是就是将这个变量(对象)的地址赋值给指针(引用)。2.示例:p—>next = q; 表示p节点的后继指针存储了q节点的内存地址。p—>next = p—>next—>next; 表示p节点的后继指针存储了p节点的下下个节点的内存地址。警惕指针丢失和内存泄漏(...翻译 2018-12-02 19:16:46 · 139 阅读 · 0 评论 -
数据结构与算法之美--打怪升级路4
数组数组如何实现随机访问数组是一种线性数据结构,用连续的存储空间存储相同类型数据线性表:数组、链表、队列、栈非线性表:树 图连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作数组如何实现下标随机访问。引入数组再内存种的分配图,得出寻址公式a[i]_address = base_addre...翻译 2018-11-26 23:52:24 · 232 阅读 · 0 评论 -
数据结构与算法之美--打怪升级路5
什么是链表?和数组一样,链表也是一种线性表。2.从内存结构来看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构。3.链表中的每一个内存块被称为节点Node。节点除了存储数据外,还需记录链上下一个节点的地址,即后继指针next。##为什么使用链表?即链表的特点1.插入、删除数据效率高O(1)级别(只需更改指针指向即可),随机访问效率低O(n)级...翻译 2018-12-02 16:23:17 · 181 阅读 · 0 评论 -
sort 算法小结
package sort;public interface ISortNumber { /** * 对整型数组按升序排序 * @param intArray 待排序的整型数组 * @return 按升序排序后的数组 */ public int[] sortASC(int[] intArray);}package so原创 2017-08-21 10:15:28 · 111 阅读 · 0 评论 -
七种排序算法--java实现
public class BasicSort {public static void swap(int[] number,int i,int j){int temp=number[i];number[i]=number[j];number[j]=temp;}//选择排序public static void selectionSort(int[] number){fo原创 2016-05-16 14:59:46 · 303 阅读 · 0 评论 -
数据结构与算法之美--打怪升级路9
什么是队列?先进者先出,这就是典型的“队列”结构。支持两个操作:入队enqueue(),放一个数据到队尾;出队dequeue(),从队头取一个元素。所以,和栈一样,队列也是一种操作受限的线性表。顺序队列链式队列循环队列确定好队空和队满的判定条件。队空:head == tail队满:(tail+1)%n=head。队列有哪些常见的应用?阻塞队列在队列的基础上增加...翻译 2018-12-09 22:56:14 · 307 阅读 · 0 评论