冒泡法排序

来源:互联网 发布:淘宝上悦诗风吟专柜 编辑:程序博客网 时间:2024/06/06 02:39

传统的冒泡排序法相信大家都耳熟能详,这里介绍两个改进后的冒泡排序法。

方法一:

void Bubble(int  r[],int n)

{
int i = n-1;
while(i>0)
{
int pos = 0;
int temp = 0 ;
for(int j = 0;j< i;j++)
{
if(r[j]>r[j+1])
{
pos = j;
temp = r[j];
r[j] = r[j+1];
r[j+1] = temp;
}
}
i = pos;
}

}

该方法最大的特点就是,记录每次发生变化的最大值,之后不变就意味着后面的已经排好。

方法二:

void Bubble(int  r[],int n)
{
int low = 0,high = n-1;
int temp,j;
while(low<high)
{
for( j = low ;j<high;j++)
{
if(r[j]>r[j+1])
{
temp = r[j];
r[j] = r[j+1];
r[j+1] = temp;
}
}
high--;
for( j = high;j>low;j--)
{
if(r[j]<r[j+1])
{
temp = r[j];
r[j] = r[j+1];
r[j+1] = temp;
}
}
low++;
}
}

该方法最大的特点是同时从头和为进行排序。

0 0
原创粉丝点击