小弟我这个冒泡和标准的比怎么

我这个冒泡和标准的比如何?

#include <stdio.h>

#define SIZE 8

void bubble_sort(int a[],int n)
{
int i,j,tmp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(a[i] > a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}

int main()
{
    int number[SIZE]={95,45,15,78,84,51,24,12};
    int i;
    bubble_sort(number,SIZE);
    for(i=0;i<SIZE;i++)
    {
        printf("%d,",number[i]);
    }
    printf("\n");
}


标准的冒泡,我感觉写法上不易理解,我这个冒泡在效率上如何呢?
------解决方案--------------------
你没有考虑序列初始有序的情况。。。


void BubbleSort(ElementType A[], int n)  
{  
    for(int i=0; i<n-1; ++i)  
    {  
        bool flag = false;   // 表示本次冒泡是否发生交换的标志  
        for(int j=n-1; j>i; --j) // 从后往前  
        {  
            if(A[j-1] > A[j])   
            {  
                flag = true;  
                // 交换  
                A[j-1] = A[j-1]^A[j];  
                A[j] = A[j-1]^A[j];  
                A[j-1] = A[j-1]^A[j];  
            }  
        }  
  
        if(flag == false)  
            return;  
    }  



------解决方案--------------------
其实从理论上来说,应该是一个样的。都是O(n^2)的复杂度
不同的是冒泡每次都是把先从头开始把最大的冒到后面去,你的是每次从头开始选择一个最小的弄到头上去。
你这种有点选择排序的味道,而且还写麻烦了。

你可以去看看选择排序。


------解决方案--------------------
呵呵,你这应该不叫冒泡,你这叫沉底算法。别人冒泡是一个极值一个极值不停地浮上去的,你找到极值后就沉在那个地方雷打不动了。应该叫沉底法。
------解决方案--------------------
小弟我这个冒泡和标准的比怎么写一些测试代码测试一下不就知道了吗