注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

时光机TimeMachine

——一个退役OIer

 
 
 

日志

 
 

最近遇到的坑  

2017-05-05 23:47:10|  分类: 日常 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
大概用来当笔记用了
1.
快排中间调整顺序的地方

while( l < r )
{
while( l < r && ( *x < data[r] ) )r--;
if( l < r ){swap( data[l++], data[r] );x = data+r;}
while( l < r && ( data[l] < *x ))l++;
if( l < r ){swap( data[r--], data[l] );x = data+l;}
}

感觉( *x < data[r] )换成!( data[r] < *x )的话相等的值就可以跳过,减少了很多交换次数,应该会快一点
但是实际上会导致快排在重复元素多的时候退化
考虑一下全是1的数组就知道为啥了。。
2.
有关valgrind的invalid read
同学的问题是一片空间delete了两次
我的问题是
一个函数
removeNode(Node *&r)
最开始调用的时候是removeNode(p->ch[x]);
结果我在里面把p delete掉了
这样p->ch[x]的值可能短时间能用,而且由于在里面不需要调用operate->,导致直接跑没有RE并且通过了所有的测试点……
  评论这张
 
阅读(2)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017