冒泡排序算法小结

冒泡算法1:

for(int i=0; i

{

for(int j=i+1; j

{

if(arr[i]>arr[j])

{

temp=arr[i]; arr[i]=arr[j]; arr[j]=temp;

}

}

}

冒泡算法2:

for(int i=0; i

{

for(int j=1; j

{

if(arr[j-1]>arr[j])

{

temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp;

}

}

}

改进型冒泡算法1:

BOOL flag=true;  //设置标志,如果有一次遍历没有发生交换(flag==flase),说明排序已经完成

while(flag==true)

{

flag=flase;

for(int i=0; i

{

if(arr[i]>arr[i+1])

{

temp=arr[i] ;arr[i]=arr[i+1]; arr[i+1]=temp;

flag=true;

}

}

n--;

}

改进型冒泡算法2

int flag=n;  //设置标志,记录每一次比较的最后位置,下次比较从开始到这个位置就终止

int tempNum=0;

while(flag>0)

{

tempNum=flag;

flag=0;

for(int i=0; i

{

if(arr[j-1]>arr[j])

{

temp=arr[i]; arr[i]=arr[i-1]; arr[i-1]=temp;

flag=i;

}

}

}

你可能感兴趣的:(冒泡排序算法小结)