用冒泡排序可以排序任意数据类型,这次用冒泡排序排序字符串。
思路与一般的冒泡排序思路是大致相同的。
注意的点:
第一:比较字符串大小时不能用<>=,应该用strcmp函数比较
第二:交换字符串,应该先创建一个足够大的临时空间,使用strcpy函数进行拷贝达到交换的目的。
第三:我考虑将多个字符串放入二维数组中。
代码:
#include <stdio.h>
#include <string.h>
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;i<len-1;i++)
{
for(j=0;j<len-i-1;j++)
{
if(strcmp(arr[j],arr[j+1])>0)
Swap(arr[j],arr[j+1]);
flag=1;
}
if(flag==0)
break;
}
for(i=0;i<len;i++)
{
printf("%s\n",arr[i]);
}
return 0;
}
此处比较的字符串大小,默认是先比较字符的ascii码。