poj1007

简单排序

View Code
//poj1007
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

const    int        maxn = 101;

struct  item
{
    string    sequence;
    int        unsort;
}dna[maxn];

int        n, m;

bool operator<(item a, item b)
{
    return a.unsort < b.unsort;
}

int calculate(string st)
{
    int        i, j, ans;
    
    ans = 0;
    for (i = 0; i < st.length(); i++)
        for (j = i; j < st.length(); j++)
            if (st[i] > st[j])
                ans++;
    return ans;
}

void init()
{
    int        i;

    getchar();
    for (i = 0; i < n; i++)
    {
        getline(cin, dna[i].sequence);
        dna[i].unsort = calculate(dna[i].sequence);
    }
}

void print()
{
    int        i;
    
    for (i = 0; i < n; i++)
        cout << dna[i].sequence << endl;
}

int main()
{
    //freopen("t.txt", "r", stdin);
    cin >> m >> n;
    init();
    sort(dna, dna + n);
    print();
    return 0;
}
原文地址:https://www.cnblogs.com/rainydays/p/2799598.html