题目大意:
给一组数字,每次只能交换相邻数字,问最少几次交换可以排好序
解题思路:
题目条件比较宽松。类似于冒泡排序的过程,进行交换就可以了
代码如下:
#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;
}
本文介绍了一个简单的排序问题解决方法,通过模拟冒泡排序的过程来计算将一组数字按顺序排列所需的最少交换次数。代码使用C语言实现,并通过输入一组数字来展示如何逐步进行交换操作。
519

被折叠的 条评论
为什么被折叠?



