摘要:
C语言是简洁的强大的,当然也有很多坑。C语言也是有点业界良心的,至少它实现了2个最最常用的算法:快速排序和二分查找。我们知道,对于C语言标准库 qsort和 bsearch:a. 它是“泛型”的,可以对任何类型进行排序或二分。b. 我们使用时必须自定义一个比较函数当作函数指针传入。c语言要实现泛型,基本上就只有 void指针提供的弱爆了的泛型机制,容易出错。这篇文章中,我实现了 标准库qsort和bsearch函数,最基本的正确性和泛型当然要保证了。在这里,不涉及优化(写标准库实现的那帮人恨不得用汇编实现),只展现算法的运行原理和泛型的实现机制。1.C语言标准库qsort源码实现。我先呈上完整 阅读全文