首页 > 学院 > 开发设计 > 正文

poj1804

2019-11-10 18:21:33
字体:
来源:转载
供稿:网友

题目大意:

给一组数字,每次只能交换相邻数字,问最少几次交换可以排好序

解题思路:

题目条件比较宽松。类似于冒泡排序的过程,进行交换就可以了

代码如下:

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>int main(){ int c; int cnt; int i,j; int n[1200]; int count=0; int num; int k; scanf("%d",&c); while(c--) { count++; num=0; scanf("%d",&cnt); for(i=1;i<=cnt;i++) scanf("%d",&n[i]); for(i=cnt;i>=1;i--) { for(j=1;j<=i-1;j++) { if(n[j]>n[j+1]) { k=n[j];n[j]=n[j+1];n[j+1]=k; num++; } } } PRintf("Scenario #%d:/n%d/n/n",count,num); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表