美文网首页
冒泡排序算法小结

冒泡排序算法小结

作者: Blade770 | 来源:发表于2015-12-13 16:37 被阅读108次

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

    }

    }

    }

    相关文章

      网友评论

          本文标题:冒泡排序算法小结

          本文链接:https://www.haomeiwen.com/subject/gixuhttx.html