U236091 【排序】冒泡排序
题目背景
冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。
一般情况下,称某个排序算法稳定,指的是当待排序序列中有相同的元素时,它们的相对位置在排序前后不会发生改变。
冒泡排序思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。
时间复杂度:$O(n^2)$
稳定性:稳定

题目描述
输入两个正整数n,k, 然后依次输入n个正整数$a_1, a_2, \cdots ,a_n$。
输出第k小的正整数。并输出程序运行过程中冒泡排序总比较次数和总的数据交换次数。
有相同的数则占据连续的几个排名, 例如对1, 2, 3, 3, 3, 4, 5, 6, 7, 第3,4,5小的数都是3.
输入格式
第1行两个正整数$n$和$k$
第2行$n$个正整数, 以空格分隔
输出格式
四个正整数,用空格隔开
输出第$k$小的数、冒泡排序总比较次数、总数据交换次数、第一轮排序后第$k$个位置元素的数值(如果无需进行冒泡排序,输出第$k$个位置元素的数值即可)
说明/提示
$1 \le n \le 10^4$, $1 \le a_i \le 10^4$