浙江财经大学2024年研究生初试自命题科目《数据结构》考试大纲
4.理解查找在不同数据环境下的应用。(七)排序1.理解外部排序。2.熟练掌握直接插入排序、希尔排序、直接选择排序、堆排序、冒泡排序、快速排序、归并排序和基数排序。3.理解各类排序的稳定性和时间复杂度。4.理解内部排序算法的应用。
面试常见问题:时间复杂度O是什么?
1.最好情况时间复杂度:目标元素刚好在数组第一个位置,那么只需要一次就能找到,时间复杂度很明显是常量阶O(1)。2.最坏情况时间复杂度:目标元素在数组最后一个位置或者不在数组中,那么就需要遍历完整个数组才能得出结果,时间复杂度为O(n)。由于目标元素的位置不同,导致时间复杂度出现量级差异。这种情况下就需要...
漫画:什么是冒泡排序?
原始的冒泡排序是稳定排序。由于该排序算法的每一轮要遍历所有元素,轮转的次数和元素数量相当,所以时间复杂度是O(N^2)。冒泡排序代码及优化冒泡排序第一版:publicclassBubbleSort{privatestaticvoidsort(intarray[]){inttmp=0;for(inti=0;i<array.length;i++){for(int...
面试官:手写一个冒泡排序,并对其改进
冒泡排序在笔试或者是面试的时候,涉及到的时间复杂度和空间复杂度都是第一种普通情况。因此它的时间复杂度是O(n^2)。虽然简单,但是时间上确实是比较长。我们一定要注意和选择排序的区别,选择排序是走一趟找出来一个最小的值和第一个同学交换位置。而冒泡排序是相邻同学比较高低,这样走一趟,最高个就沉到末尾了。
数据工程师的重要数据结构和算法
基于比较的排序算法,例如冒泡排序、插入排序、快速排序和合并排序,比较数据中的元素以确定顺序。这些算法的时间复杂度在平均情况下为O(nlogn),在最坏情况下为O(n^2)。非基于比较的排序算法(例如计数排序、基数排序和桶排序)不比较元素来确定顺序。因此,这些算法在平均情况和最坏情况下的时间复杂度均为...
记一次蚂蚁金服的面试经历
7、堆排序时间复杂度排序名称稳定性平均时间复杂度最好时间复杂度最坏时间复杂度桶排序不稳定O(n)O(n)O(n)基数排序稳定O(n)O(n)O(n)归并排序稳定O(nlogn)O(nlogn)O(nlogn)快速排序不稳定O(nlogn)O(nlogn)O(n^2)堆排序不稳定O(nlogn)O(nlogn)O(nlogn)冒泡排序稳定O(n^2)O(n)O(n^2)选...
真正支配整个世界的十种算法
其中合并排序算法是迄今为止我们所拥有的最为重要的算法之一。这是一种基于比较的排序算法,以分治的方法解决原本时间复杂度为O(n^2)的问题。该算法由数学家JohnvonNeumann于1945年发明得出。快速排序是另一种用于解决排序问题的方法,其能够实现就地分区,同样属于一类分而治之的算法。该算法的问题在于其...
Transformer能解释一切吗?
O(n)意味着数据量的增加与算法耗时成正比,O(n^2)意味着像冒泡排序那样,算法耗时是数据量的n^n倍。计算耗时越长,算法越复杂,也就意味着推理成本越高。图源:博客园拿文本翻译做个例子,在处理长文本序列时(假设文本长度为N),自注意力机制的时间复杂度为O(N^2),当N过大时,翻译速度很低。这也是为什么当前...
地产大佬潘石屹:人生苦短,我要学Python
合并两个有序数组,猜数字游戏,计算年龄等等;第五天:数据结构(6小时):栈,队列,字典,元组,树,链表;第六天:面向对象编程(OOP)(6小时):对象,类,方法和构造函数,面向对象编程之继承;第七天:算法(6小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、...
面试造核弹,入职拧螺丝,裁员我先来?凭什么?
3)问题的复杂度决定技术实力的高度问题的复杂度不同,复杂度越高,解决起来越困难,相应的技术实力要求也越高。打个比方,很多面试官喜欢让面试者现场手写冒泡排序、快速排序、链表之类的代码,以此来判断面试者的技术实力,但我们用这个原则去分析一下就可以发现,这样并不能考核技术实力,假如招聘了一个会手写快速排序...