题目大意:
给一组数字,每次只能交换相邻数字,问最少几次交换可以排好序
解题思路:
题目条件比较宽松。类似于冒泡排序的过程,进行交换就可以了
代码如下:
#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;}