面试中常考的现场手写题
二分查找
::: {.code-include lexer="cpp"} ./binary-search.cpp :::
有两个地方需要说明一下:
- 写这种程序,函数入口处必须断言,以保证程序的健壮性。
- 原来的
(low + high) / 2写成low + ((high - low) >> 1)可以防止越界 以及提高效率。
快排
如果没啥要求,就写递归版的。
::: {.code-include lexer="cpp"} ./qsort_r.cpp :::
如果要写非递归版的,就用栈记录要排列的子序列的两个边界值。
::: {.code-include lexer="cpp"} ./qsort_i.cpp :::
归并排序
现场写,就用最简单的插入排序的方法来Merge了。
::: {.code-include lexer="cpp"} ./merge_sort.cpp :::