冒泡排序字符串

用冒泡排序可以排序任意数据类型,这次用冒泡排序排序字符串。
思路与一般的冒泡排序思路是大致相同的。
注意的点:
第一:比较字符串大小时不能用<>=,应该用strcmp函数比较
第二:交换字符串,应该先创建一个足够大的临时空间,使用strcpy函数进行拷贝达到交换的目的。
第三:我考虑将多个字符串放入二维数组中。

代码:

#include 
#include 
void Swap(char *px,char  *py)
{
    char tmp[32]={};
    strcpy(tmp,px);
    strcpy(px,py);
    strcpy(py,tmp);
}
int main()
{
    char arr[][32]={ {"hello"},
                    {"world"},
                    {"bit"} };
    int i=0,j=0;
    int flag=0;
    int len=sizeof(arr)/sizeof(arr[0]);
    for(i=0;i1;i++)
    {
        for(j=0;j1;j++)
        {
            if(strcmp(arr[j],arr[j+1])>0)
                Swap(arr[j],arr[j+1]);
            flag=1;
        }
        if(flag==0)
            break;
    }
    for(i=0;iprintf("%s\n",arr[i]);
    }
    return 0;
}

此处比较的字符串大小,默认是先比较字符的ascii码。

你可能感兴趣的:(c练习)