poj1007-DNA Sorting(排序)
2015-10-16 20:59
435 查看
一,题意:
输入N个字符串,按照字符串的逆序数由最少到最大开始输出。
注意:如果逆序数相同,就原来顺序输出。
二,思路步骤:
1,输入,并用a[]存储每行字符串的逆序数;
2,冒泡排序a[]的同时换掉str[][]的顺序;
3,输出。
View Code
版权声明:本文为博主原创文章,未经博主允许不得转载。
输入N个字符串,按照字符串的逆序数由最少到最大开始输出。
注意:如果逆序数相同,就原来顺序输出。
二,思路步骤:
1,输入,并用a[]存储每行字符串的逆序数;
2,冒泡排序a[]的同时换掉str[][]的顺序;
3,输出。
#include<iostream> #include<cstring> using namespace std; int main(){ char str[105][55]; int a[105]; char ch[105]; int n , m ; cin>>m>>n; //输入并算出没行的字符串的逆序数并存储 for(int i = 0 ; i < n ; i++){ cin>>str[i]; int count = 0 ; for(int j = 0 ; j < m ; j++){ for(int k = 0 ; k < j ; k++){ if(str[i][j]<str[i][k]) count++; //记录逆序数 } } a[i]=count; //a[]存储每一行的逆序数 } //将str冒泡重新排序 for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n - i - 1 ; j++){ if(a[j]>a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; strcpy(ch,str[j]); strcpy(str[j],str[j+1]); strcpy(str[j+1],ch); } } } //输出 for(int i = 0 ; i < n ; i++) cout<<str[i]<<endl; return 0; }
View Code
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 编写程序,输出为返回 值的二进制位模式从左到右翻转后的值
- [转载]objdump readref 查看elf的各节段的信息/运行时
- EditText属性
- Ubuntu下Android开发环境的搭建
- kvm安装ghost xp非常的慢原因以及全屏问题
- Java学习——JSTL标签与EL表达式之间的微妙关系
- HDU4821---字符串hash,map判重
- css less学习 变量
- 要让读者在不看任何数学公式的情况下理解傅里叶分析
- Redis Key操作
- 第三方推送-使用推
- 20151016知识内容整理
- lintcode :旋转字符串
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?(异或的用法)
- JSON跟JSONP的区别以及实战
- Unique Paths II
- C/C++ 操控访问SQLite3 数据库
- C++对C的增强
- 关于MODBUS通讯心得之一:滞后性问题
- B\S备忘录30——权限的控制按钮思路,看清楚是思路。