Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 1.57 KB

question.md

File metadata and controls

31 lines (19 loc) · 1.57 KB

过程中遇到的问题

  • 当函数需要返回一个vector时,采用什么方式最好? 将其作为函数的一个参数比较好,避免数据的大量拷贝。

  • const修饰的函数内部只能调用const修饰的函数? 是的,为了防止调用的那个函数修改数据成员。

  • 时间复杂度 & 空间复杂度?

  • 冒泡排序与选择排序的区别?

    • 冒泡排序中,每一趟排序是相邻两个元素之间进行比较、交换位置;
    • 选择排序中,每一趟排序中,是从选择的那个数开始,依次与后面的所有数字进行比较,找到最小的那一个;
  • 如何理解排序算法的稳定性? 通俗解释: 我们知道对于原数列中的两个相等元素,他们有一个前后位置关系。稳定性排序算法能保证排序后的数列中,这个前后位置关系仍然能够保持。

比如,原数列中,如果Ai = Aj,其中Ai位于Aj的前面。那么经过稳定性算法排序后,Ai仍然位于Aj的前面。

虽然相等的两个数字的前后位置,对于排序后的数据没有本质性的区别,但是稳定性算法仍然有一定的优势:

  1. 节约排序时间。稳定性算法会减少一次数据交换的时间。
  2. --
  • 选择排序算法为什么不稳定? 这个问题通过一个例子来说明比较只管: 对于一个序列 : 5 8 5 2 9 选择排序在第一遍排序中,会选择第1个元素5会和元素2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。