正文

练习:交换排序2006-05-16 23:41:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bclz/14225.html

分享到:

//对数组进行交换排序
/*
交换排序的过程为:
    (1)先拿两张牌放到手中。如果左边的牌要排在右边的牌的后面,就交换这两张牌的位置。
    (2)然后拿下一张牌,并比较最右边两张牌,如果有必要就交换这两张牌的位置。
    (3)重复第(2)步,直到把所有的牌都拿到手中。
    (4)如果不再需要交换手中任何两张牌的位置,就说明牌已经排好序了;
    否则,把手中的牌放到桌上,重复(1)至(4)步,直到手中的牌排好序。
*/
#include <iostream.h>
int *ExchSort(int a[],int n)
{
    int count=1;
    while(count!=0)
    {
        count=0;
        for(int i=0;i<n;i++)
        {
            int t;
            if(a[i]>a[i+1])
            {    
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
                count++;
            }
        }
        if(count==0)
            return a;
    }
}

void main()
{
    int a[]={10,9,8,7,6,5,4,3,2,1,0};
    int n=11;
    int *b;
    b=new int(n);
    b=ExchSort(a,n);
    for(int i=0;i<n;i++)
        cout<<*(b+i)<<endl;
}

阅读(2226) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册