请帮我写出一个简单的冒泡排序,重分!!!

来源:百度知道 编辑:UC知道 时间:2024/09/20 20:29:36
急急``````````````

void bubble_sort(int a[],int n)//对有n个元素的数组a进行冒泡排序
{
int i,j;
for (i=n-1;i>=0;i--)
for (j=0;j<i;j++)
if (a[j]>a[j+1])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

/*
冒泡排序:

(1)稳定性:稳定
(2)时间复杂度:
①原始数据正序,需一趟排序,比较次数n-1=O(n)
②原始数据反序,需n-1趟排序,比较次数
③一般情况下,虽然不一定需要n-1趟排序,但由于每次数据位置的改变需要3次移动操作,因此,总时间复杂度高于直接插入排序。
(3)空间复杂度:仅需一个中间变量
*/
_U32 Sort_Bubble(_U32 arrDisorderQueue[],_U32 ulQueueLength)
{
_U32 i,j,ultemp;
_U32 h=1;

/*入口参数检查*/
if(arrDisorderQueue==NULL)
{
return G_FAILURE;
}

for(i=0;i<ulQueueLength;i++)
{
for(j=0;j<ulQueueLength-i-1;j++)
{
ultemp = arrDisorderQueue[j];
if(arrDisorderQueue[j] > arrDisorderQueue[j+1])
{
arrDisorderQueue[j]=arrDisorderQueu