摘要: 归并排序 归并算法应用到分治策略,简单说就是把一个答问题分解成易于解决的小问题后一个个解决,最后在把小问题的一步步合并成总问题的解。归并排序应用递归来把数组分解成一个个小数组,直到小数组的数位有序,在把有序的小数组两两合并而成有序的大数组。 最差、最优、平均时间复杂度都为O(nlogn)。辅助空间O 阅读全文
posted @ 2018-03-15 17:40 汕大小吴 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 按位非 按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码 现在让我来看几个例子 例子1 例子2 例子3 结论 通过上面的例子我们可以知道对于整数,按位非就是操作数的负值减1. 但是对于浮点数就比较麻烦了,操作浮点数时,会直接舍去小数部分,再取负值减1 利用这点我们可以可以使用~ 阅读全文
posted @ 2018-03-15 16:25 汕大小吴 阅读(920) 评论(0) 推荐(0) 编辑
摘要: 快速排序 下面是之前实现过的快速排序的代码。 明显我们可以看出快排的思想是每次找到一个基准数,将数组排列成基准数左边的每个数都比基准数大,右边的每个数都比基准数小的序列。 通过这个思想,我们可以稍微修改QuickSort函数,使它变成findKmax函数,使之拥有快速查找前k个最大的数。 基于快速排 阅读全文
posted @ 2018-03-15 03:00 汕大小吴 阅读(1529) 评论(0) 推荐(0) 编辑