在数据结构中,有四种表示程序运行效率的方法(大O表示法):
O(1),O(logN),O(N),O(N[size=8px]2[/size])
在多重for语句嵌套的情况下对DB进行插入(嵌套关系紧密,每循环遍历一次的条件都与下一步循环有关系),同时DB内部用sequence为每条数据生成一个序号,然后进行保存。这种做法属于第四种表示方法。
请问,有什么方法可以从第四种方法转换到第三种表示方法。请以理论说明。

解决方案 »

  1.   

    时间复杂度应该是数据库交互最大所以大O表示数据库操作的次数,所以插入N条记录一般情况下都是O(N)
      

  2.   

    对于一次遍历数据插入DB确实是O(N),对于一条数据插入DB着实是O(1)。
    但是,对于嵌套遍历数据(遍历当前层时,都要于已知遍历出来的数据做为下步执行的内层循环有紧密联系,必先在内层循环执行完插入后,紧接着执行此条数据的插入,然后继续遍历当前循环,重复操作直至循环结束)插入DB那就是O(N的2次方)。你说的理论,是在数据插入时Program与DB之间交互的时间复杂度,而我要知道得是执行Program的过程中的时间复杂度。
    从O(N的2次)转换到O(N),其实条件我也知道,只是说得比较打击人。条件就是:牺牲代码复杂度来解决时间复杂度。现在需要代码加理论说明。我提得东西有点过了,帮帮忙!