问一个算法的问题~

clglj 2005-08-30 09:38:28
比如在页面或者从浏览器上传几万条数据
然后到数据库去查看有没有相应的记录 如果有就正常
如果没有就是盘盈 如果数据库中有而提交的数据中没有的话
就是盘亏
这个操作要怎么做比较好 大家来讨论一下
我自己的想法
一个是把数据一条一条的和数据库中的对比查询 这样的话如果查到了就是正常
并且修改数据库中的一个标志位 正常 如果没有的话 就把这个数据插入到数据库中去 标志位为盘盈
初始的标志位为盘亏 这样的话 就是要进行很多次的数据库操作 然后再把这些数据读出来.

第二种做法是把数据库中所有满足条件的数据读出来 然后再内存中进行对比
可是几万条的数据放到内存中不知道会不会很慢 然后就是对比的算法.
最简单的就是遍历循环对比,这样的话算法的复杂度比较高不太可取.
以前学数据结构的时候记得好像有比较好的算法 可是现在都忘了
不知道各位有什么比较好的办法没有 因为是用B/S加struts做的所以需要较高的性能
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehesmile 2005-09-05
  • 打赏
  • 举报
回复
修证: 写的时候一粗心,排序的最佳复杂度写错了,应该是NlogN +MlogM
hehesmile 2005-08-30
  • 打赏
  • 举报
回复
用select只取出主键,就是你所说的要进行比较的部分,再做一个标志位,表示你所说的状态,选出的内容按一定的次序(主键升或降).你要上传进行比较的数据也要与select出的数据有相同的顺序,然后利用类似于归并算法的方法,进行标志状态的修改,然后根据标志去处理后续工作.时间复杂度也就是:O(M+N){M=SELECT出的数据的长度,N=上传数据的长度}+[LOGN+LOGM]{此为排序时间最佳的复杂度}.类似的归并排序算法,可以参考,清华大学严蔚敏(C,或PASCAL)版数据结构,线性表一章.
clglj 2005-08-30
  • 打赏
  • 举报
回复
呵呵 这个好像不错。。
大家还有什么比较好的算法
为什么人人都要学算法? 程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点。很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。但是这些其实都不是具体的算法,而是一系列算法的集合。 所以说,好的代码从来离不开优秀的算法算法不学不可! 本门课程为系列课程第一课,挑选出非常实用、高效、高频的算法:动态规划! 动态规划(Dynamic programming,简称DP)很多人都觉得是比较难以理解和掌握的一种算法,为了应付面试更多的时候程序员会选择直接死记硬背斐波那楔数列或者背包的源码,其实只要认真学习、彻底理解,动态规划并没有那么难。 学完即可掌握面试中90% 以上会到的算法 ,实用性99.9999%! 这门课程,授课老师很厉害! 王硕-资深软件工程师,从事计算机相关课程教学多年,擅长Java、Python、数据结构和算法等课程,有丰富的计算机课程的教学经验。致力于企业级软件开发和计算机教育工作,具有索尼中国研究院和四大国有银行软件开发中心的工作经历。 著有编程畅销书《你也能看得懂的Python算法书》。 本课程实用性极强,边学边练!零基础也能轻松入门~ 在这门课中,我们保证你能收获到这些 1)透彻理解:到底什么是动态规划 2)细致讲解:挖矿工 3)细致讲解:爬台阶 4)细致讲解:背包 【注意】 1)现在购买至少享受40元优惠;2)课程教辅材料自助下载; ---------------------------------------------------------------

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧