C
tutu1583
这个作者很懒,什么都没留下…
展开
-
交换两个数的函数--C语言实现
最近看到一个很巧妙的算法,通过连续三次异或运算交换a与b。代码如下:void Swap(int a,int b){ a ^= b; b ^= a; a ^= b;}原创 2018-04-08 11:15:43 · 286 阅读 · 0 评论 -
数据结构之分而治之算法的问题
我在网上看了陈越老师的数据结构,很棒,讲了分而治之算法,原理我已经懂了,代码网上也有,但是有一个疑惑,就是中间跨越部分最大的子列和为iRightMaxSum + iLeftMaxSum,但是很明显这个iRightMaxSum + iLeftMaxSum是不对。如下图举例。如图,左边最大为6,右边最大为8,而中间跨越最大为11<(6+8)。故这个iRightMaxSum + iLeftMaxS...原创 2018-04-05 22:34:42 · 1324 阅读 · 5 评论 -
N个数中找出第k个最大的数----选择问题
设有一组N个数而要确定其中第k个最大者,称之为选择问题。解法一:将N个数镀金一个数组中,再通过某种简单的算法,比如冒泡排序法,以递减顺序将数组排序,然后返回位置k上的元素。运行时间为O(N^2)。解法二:先把前k个元素读入数组并(以递减的顺序)对其排序,接着,将剩下的元素在逐个读入。当新元素被读到时,如果他小于数组中的第k个元素则忽略,否则就将其放到数组中正确的位置上,同时将数组中的一个元...原创 2018-10-24 16:33:28 · 3425 阅读 · 0 评论