冒泡算法1:
for(int i=0; i<n-1; i++)
{
for(int j=i+1; j<n; j++)
{
if(arr[i]>arr[j])
{
temp=arr[i]; arr[i]=arr[j]; arr[j]=temp;
}
}
}
冒泡算法2:
for(int i=0; i<n; i++)
{
for(int j=1; j<n-i; j++)
{
if(arr[j-1]>arr[j])
{
temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp;
}
}
}
改進(jìn)型冒泡算法1:
BOOL flag=true; ?//設(shè)置標(biāo)志弯予,如果有一次遍歷沒有發(fā)生交換(flag==flase),說明排序已經(jīng)完成
while(flag==true)
{
flag=flase;
for(int i=0; i<n-1; j++)
{
if(arr[i]>arr[i+1])
{
temp=arr[i] ;arr[i]=arr[i+1]; arr[i+1]=temp;
flag=true;
}
}
n--;
}
改進(jìn)型冒泡算法2
int flag=n; ?//設(shè)置標(biāo)志抖仅,記錄每一次比較的最后位置剔桨,下次比較從開始到這個位置就終止
int tempNum=0;
while(flag>0)
{
tempNum=flag;
flag=0;
for(int i=0; i<tempNum; i++)
{
if(arr[j-1]>arr[j])
{
temp=arr[i]; arr[i]=arr[i-1]; arr[i-1]=temp;
flag=i;
}
}
}