POJ 1007 DNA Sorting - 字符串比较 - 排序

来源:互联网 发布:linux显示隐藏文件 编辑:程序博客网 时间:2024/06/06 05:29

POJ 1007 DNA Sorting

题意:字符串比较,逆序数排序。难度:1星。

应注意排序的稳定性。

不稳定的排序算法:选择排序、快速排序、希尔排序、堆排序;
稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。

/* *POJ 1007 DNA Sorting *字符串比较;逆序数排序; * *将序号与对应逆序数绑定: *inversion[i] = inversion[i] * 100 + i; *排序; * */#include <iostream>using namespace std;int main(){char input[100][56];int length, number;int inversion[100];int i, j, k, tmp;cin >> length >> number;for (i = 0; i < number; i++){cin >> input[i];for (j = 0, inversion[i] = 0; j < length - 1; j++){for (k = j + 1; k < length; k++){if (input[i][j] > input[i][k]){/* 计算逆序数 */inversion[i]++;}}}//for (int j = 0; j < length - 1; j++)inversion[i] = inversion[i] * 100 + i;/* 将序号与对应逆序数绑定 */}//for (int i = 0; i < number; i++)/* 将逆序数升序排序 */for (i = 0; i < number - 1; i++){/* 冒泡排序 */for (j = 0; j < number - 1 - i; j++){if (inversion[j] > inversion[j + 1]){tmp = inversion[j + 1];inversion[j + 1] = inversion[j];inversion[j] = tmp;}}}for (i = 0; i < number; i++){cout << input[inversion[i] % 100] << endl;}return 0;}


0 0
原创粉丝点击