这两天在做公司代码的优化,主要是系统能够改善现有代码中的算法,以达到提高性能的目的。
今天发现其中一段代码结构:
- for(unsigned int j = 0; j < rvFeeBill.size(); j++)
- {
- if(bItemCounteractFlag)
- {
- for(unsigned int i = (j+1); i < rvFeeBill.size(); i++)
- {
- ...
- }
-
- }
- if(bServCounteractFlag)
- {
- for(unsigned int i = (j+1); i < rvFeeBill.size(); i++)
- {
- ...
- }
- }
- for(unsigned int i = (j+1); i < rvFeeBill.size(); i++)
- {
- ...
- }
- for(int i = (j-1); i >= 0; i--)
- {
- ...
- }
- for(unsigned int i = 0; i < rvFeeBill.size(); i++)
- {
- ...
- }
- }
该如何优化呢?
思路:
数据举例,vector 中存放如下内容(仅取一组):
10、20、30、-100、11、12、13
假如业务上要求:
-100只能先抵11,然后才能抵12,接着抵13,最后依次抵10,20,30
目前代码结构最外层循环次数是最大的;
优化:
将负数取出作为最外层循环... 【待续】
阅读(2514) | 评论(0) | 转发(0) |