Java
- 将这N个数读进一个数组中,再通过冒泡排序法,以递减顺序将数组排序,然后返回位置k上的元素
public static void bubbleSortDescending(int[] array) {
int arrayLength = array.length;
for (int i = 0; i < arrayLength; i++) {
for (int j = 0; j < arrayLength - i - 1; j++) {
if (array[j] < array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
- 先将前k个元素读入数组并(以递减的顺序)对齐排序.接着,将剩下的元素再逐个读入.当新元素被读到时,如果它小于数组中的第k个元素则忽略,否则就将其放到数组中正确的位置上,同时将数组中的一个元素挤出数组
public static int[] selectionProblem(int[] array, int k) {
int length = array.length;
int[] arrayTemp = new int[] {};
if (length <= k) {
bubbleSortDescending(array);
arrayTemp = Arrays.copyOf(arrayTemp, length);
} else {
arrayTemp = Arrays.copyOf(array, k);
bubbleSortDescending(arrayTemp);
for (int i = k ; k < length; i++) {
if (arrayTemp[k-1] >= array[i]) {
continue;
} else {
}
}
}
return arrayTemp;
}
public static void bubbleSortDescending(int[] array) {
int length = array.length;
for (int i = 0; i < length; i++) {
for (int j = 0; j < length - i - 1; j++) {
if (array[j] < array[j+1]) {
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}