冒泡法排序

傳統的冒泡排序法相信大家都耳熟能詳,這裏介紹兩個改進後的冒泡排序法。

方法一:

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++;
}
}

該方法最大的特點是同時從頭和爲進行排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章