第一种:(类似冒泡排序)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char a[5][30]={"aaa","bbb","ccc","adb","degf"};
int i=0;
int j=0;
char b[30];
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(strcmp(a[j],a[j+1])>0)
{
strcpy(b,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],b);
}
}
}
for(i=0;i<5;i++)
{
printf("%s\n",a[i]);
}
system("pause");
return 0;
}
第二种:快排
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int my_strcmp(const void* p,const void* q)
{ /*char* a=(char*)p;
char* b=(char*)q;*/
if(strcmp((char*)p,(char *)q)==0)
{
return 0;
}
else if(strcmp((char*)p,(char *)q)>0)
return 1;
else
return -1;
}
int main()
{
char a[5][30]={"aaa","bbb","bdv","fgh","dds"};
int i;
qsort(a,sizeof(a)/sizeof(a[0]),sizeof(a[0]),my_strcmp);
for(i=0;i<5;i++)
{
printf("%s\n",a[i]);
}
system("pause");
return 0;
}
本文出自 “liveyoung” 博客,转载请与作者联系!