PKU 1007
2013-12-19 16:34
246 查看
题名:DNA排序
题意:给定字符串长度、个数,计算每个字符串的逆序数,然后从大到小排列,有兴趣的可以去看下原题。
计算字符串逆序数,然后排序,这里使用了快速排序算法,string释放的时候竟然有问题,直接字符数组吧。
题意:给定字符串长度、个数,计算每个字符串的逆序数,然后从大到小排列,有兴趣的可以去看下原题。
计算字符串逆序数,然后排序,这里使用了快速排序算法,string释放的时候竟然有问题,直接字符数组吧。
// 1007.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <algorithm> using namespace std; class data { public: char s[51]; int c; }; int partion(data a[],int p,int r){ int x = a[r].c; //通常,拿最后一个值,作为预期的中间值 int middle = p; //记录“较小的一段数据”的最大下标。通常这个值在p和r的中间,故起名middle data *temp=new data; for (int j = p ; j < r ; j++){ if (a[j].c < x){ memcpy(temp,&a[middle],sizeof(data)); //int temp = a[middle].c; memcpy(&a[middle],&a[j],sizeof(data)); //a[middle] = a[j]; memcpy(&a[j],temp,sizeof(data)); //a[j] = temp; middle++; } } //int temp = a[r]; memcpy(temp,&a[r],sizeof(data)); //a[r] = a[middle]; memcpy(&a[r],&a[middle],sizeof(data)); //a[middle] = temp; memcpy(&a[middle],temp,sizeof(data)); delete temp; return middle; } void QuickSort(data a[],int p,int r){ if (p<r){ int q=partion(a,p,r); QuickSort(a,p,q-1); QuickSort(a,q+1,r); } } int main(int argc, char* argv[]) { int slen=0,snum=0; cin>>slen>>snum; int count=0; char temp[200]={0}; data *d1=new data[snum]; while (count<snum) { cin>>temp; strcpy(d1[count].s,temp); int bigTimes=0; for (int i=0;i<strlen(temp)-1;i++)//计算大的次数 { for (int j=i+1;j<strlen(temp);j++) { if(temp[i]>temp[j]) bigTimes++; } } d1[count].c=bigTimes; count++; } QuickSort(d1,0,count-1); for (int i=0;i<count;i++) { //strcpy(temp,d1[i].s.c_str()); cout<<d1[i].s<<endl; } delete []d1; return 0; }
相关文章推荐
- Android相关权限整理
- 折腾了几天的0构建LEMP-discuz论坛迁移+用户导入(php问题等各种问题)
- Jboss 7.1.1 AS 搞JTA
- 学习:设计模式之装饰者模式
- erlang网络编程的几个性能调优和注意点
- 《综》Java Thread - stop 问题 and 解决方法
- setup time & hold time
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
- DataTable 类(二)处理表中的数据
- DataGridView(一)
- libgdx 中粒子与背景图片颜色混合的问题。
- Bundle类的作用
- 简单的string占位符替换
- C# TabControl
- 第17周项目14-指针法比较两个字符数组
- 宇宙沸腾SCCM 2012 R2系列(10)OSD操作系统部署(二)- 添加和分发系统映像包
- Java HashMap的死循环
- 海盗湾
- bootchart工具在Android系统开机测量中的应用(二)之问题解决
- [SharePoint2010开发入门经典]10、使用SPS2010构建面向服务的应用程序