文章 2023-02-09 来自:开发者社区

面试必备算法|顺序查找的思想和实现(Python)

查找​ 从原理上看,查找算法很简单,其核心就是从某个数组中找到某个元素是否存在,如果存在则返回True,不存在则返回False。顺序查找​ 存储于列表等集合中的数据项彼此存在线性或顺序的关系,数据项的位置就是他的下标,因为下标是有序的,所以能够顺序访问,因此可以进行顺序查找。无序列表的顺序查找​ 顺序查找的思想就是从头遍历到尾去找到列表中是否存在要查找的元素,当我们进行查找的列...

面试必备算法|顺序查找的思想和实现(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|二分查找的思想和实现(Python)

二分查找​ 二分查找是一种通过减少查找次数来提高效率的查找方法,它有一个重要的前提就是要保证被查找对象是一个有序列表,二分查找的步骤及图解如下:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表;重复以上过程,直到...

面试必备算法|二分查找的思想和实现(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解冒泡排序(Python)

冒泡排序冒泡排序的思想比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个;对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。图解冒泡排序(第一轮循环)冒泡排序的性质最优时间复杂度:$O(n)%$(表示遍历一次发现没有任何可以交换....

面试必备算法|图解冒泡排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解选择排序(Python)

选择排序选择排序的思想​ 选择排序的思想比较直观:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素都排序完毕。图解选择排序选择排序的性质最优时间复杂度:$O(n^2)$最坏时间复杂度:$O(n^2)$稳定性:不稳定(考虑升序每次选择最大的情况)​ 对考虑升序的情况进行说明...

面试必备算法|图解选择排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解插入排序(Python)

插入排序插入排序的思想​ 插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。图解插入排序插入排序的性质最优时间复杂度:$O(n)$ (升序排列,序列已经处于升序状态)最坏时间复杂度:$O(n^2)$稳定性:稳定插入排序的代码实现lst = list(ma...

面试必备算法|图解插入排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解希尔排序(Python)

希尔排序希尔排序的思想​ 希尔排序是对插入排序的一种改进方法,它把原来的列表分成无数个子列表,然后对每个子列表来执行插入排序,希尔排序的关键就在于对步长的控制(可以看作是每间隔几个元素取元素作为子列表)。图解希尔排序​ 给定如下的列表:​ 我们使用2作为步长(每隔两个字符取一个元素),可以划分成如下的三个子列表。​ 有了三个子列表之后,我们分别对三个子列表进行插入排序​ ...

面试必备算法|图解希尔排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解归并排序(Python)

归并排序归并排序的思想​ 归并排序主要使用了分治的策略进行排序,归并排序分为拆分和合并两个部分。拆分的时候我们需要递归的去执行把列表一分为二的操作(直到拆分成每个列表中只有一个元素),合并的时候我们同样使用递归的方法,不断地去比较列表中元素的大小并根据大小顺序进行合并(直到合并成一个列表)。图解归并排序​ 首先我们对整个列表进行不断的拆分(每次从中间拆开):​ 下一步就是对完全...

面试必备算法|图解归并排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解快速排序(Python)

快速排序快速排序的思想​ 快速排序通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。具体步骤如下:从数列中挑出一个元素,称为"基准"(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数...

面试必备算法|图解快速排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解基数排序(Python)

基数排序基数排序的思想​ 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从个位开始依次进行排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。图解基数排序​ 进行基数排序的时候我们按照从低位到高位排序即可,直到最高位排序完成。基数排序的代码实现# 基数排序 lst = list(map(int, input().split(','))) d...

面试必备算法|图解基数排序(Python)
文章 2023-02-09 来自:开发者社区

面试必备算法|图解堆排序(Python)

堆排序堆排序的思想​ 堆排序是用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。​ 以大顶堆为例,现将列表构造成一个大顶堆,此时,整个列表的最大值就是堆顶的值。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一...

面试必备算法|图解堆排序(Python)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能引擎技术

AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。

+关注