首选你要懂得什么是字典序,如果不懂自行百度,本文不再阐述。
字典序排序其实和数组排序是类似的,只需要用到strcmy和strcpy函数,可以用类似于数组冒泡排序的方法完成排序,代码如下:
方法一:
#include<bits/stdc++.h>
using namespace std;
char s[105][105];
char t[105];
int main()
{
int n,i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%s",s[i]);
for (i=0;i<n-1;i++)
for (j=0;j<n-1-i;j++)
if (strcmp(s[j],s[j+1])>0)
{
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
for(i=0;i<n;i++)
printf("%s\n",s[i]);
return 0;
}
方法二:快排(这里用到了c++面向对象的知识)
#include<bits/stdc++.h>
using namespace std;
string s[110];
int main()
{
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++){
cin>>s[i];
}
sort(s,s+n);
for(i=0;i<n;i++){
cout<<s[i]<<endl;
}
return 0;
}