当前位置: 代码迷 >> 综合 >> PTA 7-4 sdut-冒泡排序中数据交换的次数 (10 分)
  详细解决方案

PTA 7-4 sdut-冒泡排序中数据交换的次数 (10 分)

热度:45   发布时间:2023-12-04 22:11:16.0

听说过冒泡排序么?一种很暴力的排序方法。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。

输入格式:
第一行为一个正整数 T ,表示有 T 组测试数据。

接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N <= 100。

输出格式:
输出共 T 行。

每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数。

输入样例:
3
5 1 2 3 4 5
4 5 3 7 1
2 2 1
输出样例:
0
4
1

import java.util.*;
public class Main{
    public static void main(String[] args){
    Scanner sc=new Scanner(System.in);int a[]=new int[100];int n=sc.nextInt();for(int i=0;i<n;i++){
    int sum=0;int x=sc.nextInt();for(int j=0;j<x;j++){
    a[j]=sc.nextInt();}for(int j=0;j<x-1;j++){
    for(int p=0;p<x-j-1;p++){
    if(a[p]>a[p+1]){
    sum++;int tamp=a[p];a[p]=a[p+1];a[p+1]=tamp;}}}System.out.println(sum);for(int j=0;j<100;j++){
    a[j]=0;}}}
}