两种排序方法
Posted _Camille
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两种排序方法相关的知识,希望对你有一定的参考价值。
解法一
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool SortBydir(vector<string>& v)
{
for(int i = 0;i<v.size()-1;++i)
{
if(v[i]<v[i+1])
continue;
if(v[i]>v[i+1])
return false;
}
return true;
}
bool SortBylen(vector<string>& v)
{
for(int i = 0;i<v.size()-1;++i)
{
if(v[i].size()<v[i+1].size())
continue;
else
return false;
}
return true;
}
int main()
{
int n;
cin >> n;
vector<string> iv;
for(int i = 0;i<n;i++)
{
string s;
cin >> s;
iv.push_back(s);
}
if(SortBydir(iv)&&SortBylen(iv))
{
cout<<"both"<<endl;
}
else if(SortBydir(iv))
{
cout<<"lexicographically"<<endl;
}
else if(SortBylen(iv))
{
cout<<"lengths"<<endl;
}
else{
cout<<"none"<<endl;
}
return 0;
}
解法二(利用C库字符串操作函数)
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n,i,j;
int x=0,y=0;
char a[100][100];
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
}
for(i=0;i<n-1;i++){
if(strlen(a[i])>strlen(a[i+1])){
x=1;
break;
}
}
for(i=0;i<n-1;i++){
if(strcmp(a[i],a[i+1])>0){
y=1;
break;
}
}
if(x==1 && y==0)
cout<<"lexicographically"<<endl;
else if(x==0 && y==1)
cout<<"lengths"<<endl;
else if(x==0 && y==0)
cout<<"both"<<endl;
else
cout<<"none"<<endl;
return 0;
}
以上是关于两种排序方法的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段