package jsu.cn.cyy;
import java.util.Scanner;
public class Demo18 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i, j, k, n, m, l;
int[] ch = new int[100];
n = input.nextInt();
k = input.nextInt();
for(i = 0; i < n; i++) {
ch[i] = input.nextInt();
}
l = n - 1;
for(i = 0; i < k; i++) {
for(j = 0; j < l; j++) {
if(ch[j] > ch[j + 1]) {
m = ch[j];
ch[j] = ch[j + 1];
ch[j + 1] = m;
}
}
l--;
}
for(i = 0; i < n-1; i++) {
System.out.print(ch[i] + " ");
}
System.out.print(ch[i]);
input.close();
}
}
以上是一个冒泡排序,题目如下
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。
本题要求对任意给定的k(<N),输出扫描完第K遍后的中间结果数列。
输入格式
输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。
输出格式
在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。
行末无空行
输入样例复制
在这里给出一组输入。例如:
6 2
2 3 5 1 6 4
输出样例复制
在这里给出相应的输出。例如:
2 1 3 4 5 6