没啥可说的 快排就过了 而且网上有的人冒泡都能过 #include <iostream> using namespace std; struct _DNA{ char str[50]; int index; int value; }DNA[100]; int cmp(const void* a,const void* b) { _DNA* aa = (_DNA*)a; _DNA* bb = (_DNA*)b; return aa->value==bb->value?aa->index-bb->index:aa->value-bb->value; } int main() { // int DNA[100][51]; int len,num; cin>>len>>num; for (int i = 0;i < num;i++) { DNA[i].value = 0; for (int j = 0;j < len;j++) { //scanf("%d",&DNA[i][j].value); cin>>DNA[i].str[j]; for (int k = 0;k < j;k++) if(DNA[i].str[k]>DNA[i].str[j]) DNA[i].value++; } } qsort((void*)DNA,num,sizeof(_DNA),cmp); for (int i = 0;i < num;i++) { printf("%s/n",DNA[i].str); } }