首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

STL的partition算法复杂度有关问题

2012-11-09 
STL的partition算法复杂度问题这个算法的源码我大致改了下。int * partition(int * First, int * Last, _Pr

STL的partition算法复杂度问题
这个算法的源码我大致改了下。
int * partition(int * First, int * Last, _Pr _P)
 {
 for (; ; ++First)
 {
 for (; First != Last && _P(*First); ++First)
 ;
 if (First == Last)
 break;
 for (; First != --Last && !_P(*Last); )
 ;
 if (First == Last)
 break;
 iter_swap(First, Last); //交换2个指针的值
 }
 return (First); 
 }
第三个参数传递一个函数对象,这里可以认为是一个返回类型为BOLL的函数指针。问题与此无关。
大FOR循环里的2个FOR循环都没有语句体。都是指针的滑动运算。
这个算法的时间复杂度是多少?可以给出算法复杂度的分析吗?

[解决办法]
显然O(n)啊。First一直往右,Last一直往左,直到两个相遇退出。就线性了。

热点排行