1. #include<string.h>
    2. #include<iostream>
    3. using namespace std;
    4. struct DNA {
    5. char s[100];
    6. int dis_order;
    7. }dna[100];
    8. int Disorder_count(char str[], int length) { // 得到无序度
    9. int i = 0;
    10. int tmp = 0;
    11. int count = 0;
    12. int result = 0;
    13. for (tmp = 0; tmp < length - 1; tmp++) {
    14. for (i = tmp + 1; i < length; i++) {
    15. result = str[tmp] - str[i];
    16. if (result > 0) count++;
    17. }
    18. }
    19. return count;
    20. }
    21. int main() {
    22. int n, m;int i = 0;int j = 0;
    23. while (cin>>n>>m){ // 输入DNA序列,得到无序度
    24. for (i = 0; i < m; i++) {
    25. cin >> dna[i].s;
    26. dna[i].dis_order = Disorder_count(dna[i].s, strlen(dna[i].s));
    27. }
    28. for (i = 0; i < m; i++) { // 比较DNA的无序度
    29. for (j = 1; j < m - i; j++) {
    30. if (dna[j - 1].dis_order > dna[j].dis_order)swap(dna[j - 1], dna[j]); // 交换结构的简洁实现
    31. }
    32. }
    33. for (i = 0; i < m; i++) { // 输出排序的DNA序列
    34. cout << dna[i].s << endl;
    35. }
    36. printf("********************\n");
    37. }
    38. return 0;
    39. }

    image.png