C++ 字符串数组排序 - 英文单词排序
2017-03-06 本文已影响860人
静_谷
如题:
2、对给定的10个国家名,国家名的长度定义在20个字符以内,按照字母的顺序从小到大输出。
如:
England
China
America
France
Japan
India
Brazil
Korea
Italy
Canada
就是排序啦,只是套了个string。这里用的是冒泡排序
代码如下:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n;
cin>>n;
string *str = new string[n];
for(int i=0;i<n;i++)
{
cin>>str[i];
}
for(int i=0;i<n;i++)
{
for(int j=1;j<n-i;j++)
{
if(str[j]<str[j-1])
{
string temp = str[j-1];
str[j-1] = str[j];
str[j] = temp;
}
}
}
for(int i=0;i<n;i++)
{
cout<<str[i]<<endl;
}
delete str;
cin.get();
cin.get();
return 0;
}
冒泡排序的基本框架:
for(int i = 0; i < n; i++)
{
for(int j = 1; j < n- i; j++)
{
if(array[j] < array[j - 1])
{
//在这里交换!
type temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
有关内存操作(详见 C++ 使用指针动态创建数组):
string *str = new string[n];
这里开辟了一个长度为n的字符串数组
delete str;
记得删除内存!!!