系统程序员成长计划-动态数组(三)(上)
转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli at hotmail dot com>
排序
大多数高级排序算法都是针对数组实现的,接下来我们一起学习一下几种排序算法,学习算法本身只是我们的目标之一,最重要的是要从中学习一些思考问题的方法。对比不同算法的特点,也有助于我们在设计时做出正确的选择。
这里我们请读者实现冒泡排序、快速排序和归并排序。要求如下:
o 算法同时支持升序和降序。按排序结果来看,有升序和降序两种。在升序排列中,前面的元素总是小于/等于后面的元素。在降序中,前面的元素总是大于/等于后面的元素。
o 算法同时支持多种数据类型。教科书上都是以整数排序为示例的,这种简化有且让学生集中精力在算法本身上。但在现实中,我们不能再满足了解算法本身了,而是要写出一些具有实用价值的程序来。