- 1
- 0
- 约1.14万字
- 约 32页
- 2026-08-25 发布于四川
- 举报
showmebug面试常考问题及参考答案
算法与数据结构相关
1.请介绍一下常见的排序算法及其时间复杂度、空间复杂度
常见的排序算法有:
冒泡排序(BubbleSort):
基本思想:重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到数列排序完成。
时间复杂度:平均和最坏情况下为O(n2),最好情况下为O(n)(当数组已经有序时)。
空间复杂度:O(1),因为只需要常数级别的额外空间来进行元素交换。
选择排序(SelectionSort):
基本思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
时间复杂度:平均和最坏情况下为O(n2),最好情况下也为O(n2),因为无论初始状态如何,都需要进行n1次选择操作。
空间复杂度:O(1),只需要常数级别的额外空间来记录最小(大)元素的位置等信息。
插入排序(InsertionSort):
基本思想:将一个数据插入到已经排好序的数组中的适当位置。初始时,第一个元素被认为已经排好序,然后从第二个元素开始,依次将每个元素插入到前面已排好序的子数组中的合适位置。
原创力文档

文档评论(0)