关于冒泡排序的一个小问题,大家帮看一下

刚才见到求职板块一哥们的笔试题中有个冒泡排序的时间复杂度的问题,他写的是O(n*n)。
由于我今天刚刚闲来无聊写着玩写了一个冒泡排序,便仔细想了一下。可是得到的答案却不一样。我觉得冒泡排序的时间复杂度应该是O(n!)。不知到大家怎么看。我写的冒泡排序算法如下:


Integer[] numbers={5,15,3,23,25,28,16,4,15,17,33};
for(int i=0;i<numbers.length;i++)
{
for(int j=i+1;j<numbers.length;j++)
{
if(numbers[i]>numbers[j])
{
Integer temp=numbers[i];
numbers[i]=numbers[j];
numbers[j]=temp;
}
}
}
for(int k=0;k<numbers.length;k++)
{
System.out.print(numbers[k]+" ");
}


问题补充
这是百度百科上对时间复杂度计算上的看法:
在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出T(n)的同数量级(它的同数量级有以下:1,Log2n ,n ,nLog2n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n)=该数量级,若T(n)/f(n)求极限可得到一常数c,则时间复杂度T(n)=O(f(n))。
问题补充
不是吧 ,除了自己的,一个回复都没有?
问题补充
fyt_325 写道
按照比较次数来看:
i=0   n 次
i=1   n-1
i=2   n-2
。。。

也就是 1,2,3,4,...n
计算得  n(1+n)/2  数量级为 n*n

谢谢

按照比较次数来看:
i=0 n 次
i=1 n-1
i=2 n-2
。。。

也就是 1,2,3,4,...n
计算得 n(1+n)/2 数量级为 n*n

[quote]他写的是O(n*n)。 [/quote]
这个是正确答案,再仔细好好分析下。