冒泡排序算法小结

冒泡算法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;

}

}

}

改进型冒泡算法1:

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

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

}

改进型冒泡算法2

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

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;

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容