程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> poj1007-DNA Sorting(排序),poj1007-dnasorting

poj1007-DNA Sorting(排序),poj1007-dnasorting

編輯:C++入門知識

poj1007-DNA Sorting(排序),poj1007-dnasorting


一,題意:
  輸入N個字符串,按照字符串的逆序數由最少到最大開始輸出。
  注意:如果逆序數相同,就原來順序輸出。
二,思路步驟:
  1,輸入,並用a[]存儲每行字符串的逆序數;
  2,冒泡排序a[]的同時換掉str[][]的順序;
  3,輸出。

1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int main(){ 5 char str[105][55]; 6 int a[105]; 7 char ch[105]; 8 int n , m ; 9 cin>>m>>n; 10 //輸入並算出沒行的字符串的逆序數並存儲 11 for(int i = 0 ; i < n ; i++){ 12 cin>>str[i]; 13 int count = 0 ; 14 for(int j = 0 ; j < m ; j++){ 15 for(int k = 0 ; k < j ; k++){ 16 if(str[i][j]<str[i][k]) 17 count++; //記錄逆序數 18 } 19 } 20 a[i]=count; //a[]存儲每一行的逆序數 21 } 22 23 //將str冒泡重新排序 24 for(int i = 0 ; i < n ; i++){ 25 for(int j = 0 ; j < n - i - 1 ; j++){ 26 if(a[j]>a[j+1]){ 27 int temp = a[j]; 28 a[j] = a[j+1]; 29 a[j+1] = temp; 30 strcpy(ch,str[j]); 31 strcpy(str[j],str[j+1]); 32 strcpy(str[j+1],ch); 33 } 34 } 35 } 36 //輸出 37 for(int i = 0 ; i < n ; i++) 38 cout<<str[i]<<endl; 39 return 0; 40 } View Code

 

 版權聲明:本文為博主原創文章,未經博主允許不得轉載。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved