跳至主要內容
前端物语|面试物语-algorithm

h7mlalgorithmalgorithm大约 1 分钟
说说你对图的理解?相关操作有哪些?

说说你对图的理解?相关操作有哪些?

一、是什么

在计算机科学中,图是一种抽象的数据类型,在图中的数据元素通常称为结点,V是所有顶点的集合,E是所有边的集合


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说你对算法的理解?应用场景?

说说你对算法的理解?应用场景?

一、是什么

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制


h7mlinterviewalgorithminterviewalgorithm大约 3 分钟
说说你对链表的理解?常见的操作有哪些?

说说你对链表的理解?常见的操作有哪些?

一、是什么

链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,由一系列结点(链表中每一个元素称为结点)组成


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说你对栈、队列的理解?应用场景?

说说你对栈、队列的理解?应用场景?

一、栈

栈(stack)又名堆栈,它是一种运算受限的线性表,限定仅在表尾进行插入和删除操作的线性表

表尾这一端被称为栈顶,相反地另一端被称为栈底,向栈顶插入元素被称为进栈、入栈、压栈,从栈顶删除元素又称作出栈


h7mlinterviewalgorithminterviewalgorithm大约 5 分钟
说说你对树的理解?相关的操作有哪些?

说说你对树的理解?相关的操作有哪些?

一、是什么

在计算机领域,树形数据结构是一类重要的非线性数据结构,可以表示数据之间一对多的关系。以树与二叉树最为常用,直观看来,树是以分支关系定义的层次结构


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说你对算法中时间复杂度,空间复杂度的理解?如何计算?

说说你对算法中时间复杂度,空间复杂度的理解?如何计算?

一、前言

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别


h7mlinterviewalgorithminterviewalgorithm大约 5 分钟
说说你对快速排序的理解?如何实现?应用场景?

说说你对快速排序的理解?如何实现?应用场景?

一、是什么

快速排序(Quick Sort)算法是在冒泡排序的基础上进行改进的一种算法,从名字上看就知道该排序算法的特点是快、效率高,是处理大数据最快的排序算法之一


h7mlinterviewalgorithminterviewalgorithm大约 3 分钟
说说你对分而治之、动态规划的理解?区别?

说说你对分而治之、动态规划的理解?区别?

一、分而治之

分而治之是算法设计中的一种方法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说你对选择排序的理解?如何实现?应用场景?

说说你对选择排序的理解?如何实现?应用场景?

一、是什么

选择排序(Selection sort)是一种简单直观的排序算法,无论什么数据进去都是 O(n²)的时间复杂度,所以用到它的时候,数据规模越小越好


h7mlinterviewalgorithminterviewalgorithm大约 3 分钟
说说你对贪心算法、回溯算法的理解?应用场景?

说说你对贪心算法、回溯算法的理解?应用场景?

一、贪心算法

贪心算法,又称贪婪算法,是算法设计中的一种思想

其期待每一个阶段都是局部最优的选择,从而达到全局最优,但是结果并不一定是最优的


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说你对冒泡排序的理解?如何实现?应用场景?

说说你对冒泡排序的理解?如何实现?应用场景?

一、是什么

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法

冒泡排序的思想就是在每次遍历一遍未排序的数列之后,将一个数据元素浮上去(也就是排好了一个数据)


h7mlinterviewalgorithminterviewalgorithm大约 5 分钟
说说你对集合的理解?常见的操作有哪些?

说说你对集合的理解?常见的操作有哪些?

一、是什么

集合(Set),指具有某种特定性质的事物的总体,里面的每一项内容称作元素

在数学中,我们经常会遇到集合的概念:


h7mlinterviewalgorithminterviewalgorithm大约 3 分钟
说说你对插入排序的理解?如何实现?应用场景?

说说你对插入排序的理解?如何实现?应用场景?

一、是什么

插入排序(Insertion Sort),一般也被称为直接插入排序。对于少量元素的排序,它是一个有效、简单的算法


h7mlinterviewalgorithminterviewalgorithm大约 3 分钟
说说你对归并排序的理解?如何实现?应用场景?

说说你对归并排序的理解?如何实现?应用场景?

一、是什么

归并排序(Merge Sort)是建立归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说常见的排序算法有哪些?区别?

说说常见的排序算法有哪些?区别?

一、是什么

排序是程序开发中非常常见的操作,对一组任意的数据元素经过排序操作后,就可以把他们变成一组一定规则排序的有序序列

排序算法属于算法中的一种,而且是覆盖范围极小的一种,彻底掌握排序算法对程序开发是有很大的帮助的


h7mlinterviewalgorithminterviewalgorithm大约 5 分钟
说说你对二分查找的理解?如何实现?应用场景?

说说你对二分查找的理解?如何实现?应用场景?

一、是什么

在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法

想要应用二分查找法,则这一堆数应有如下特性:


h7mlinterviewalgorithminterviewalgorithm大约 5 分钟
说说你对堆的理解?如何实现?应用场景?

说说你对堆的理解?如何实现?应用场景?

一、是什么

堆(Heap)是计算机科学中一类特殊的数据结构的统称

堆通常是一个可以被看做一棵完全二叉树的数组对象,如下图:


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟
说说你对数据结构的理解?有哪些?区别?

说说你对数据结构的理解?有哪些?区别?

一、是什么

数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合

前面讲到,一个程序 = 算法 + 数据结构,数据结构是实现算法的基础,选择合适的数据结构可以带来更高的运行或者存储效率


h7mlinterviewalgorithminterviewalgorithm大约 4 分钟