【发布时间】:2020-03-11 06:12:46
【问题描述】:
package codeabb;
import java.util.*;
public class Bsort {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int arr[] = new int[100];
int swap = 0;
int pass = num-1;
for( int i = 0; i < num; i++) {
arr[i] = in.nextInt();
}
for( int i = 0; i < num-1; i++) {
pass--;
for( int j = i+1; j < num; j++) {
int temp;
if(arr[i] > arr[j]) {
swap++;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.print(pass + " "+swap);
}
}
我正在尝试输出对数组进行排序时进行的交换和传递的数量。传球数是我猜的array-1的总数?因此,我已经初始化并在每次执行交换时扣除,因为一旦进行交换,就会进行下一次传递。但是输出不对。有人可以帮我吗?
【问题讨论】:
-
你说的“传球次数”是什么意思?在此处提供您想要的示例。
-
@ankitjain 冒泡排序中的通行证
-
好的,那么通过次数将仅为 n-1,除非排序在前几次通过中完成。
标签: java swap bubble-sort