如果是數組,
先排序其中一部分,數組後面的一個個進來
之後插入排序,
/*
* https://blog.csdn.net/beiyeqingteng/article/details/7534489
https://blog.csdn.net/buster2014/article/details/50085425
https://blog.csdn.net/yjflinchong/article/details/7533972#reply
然後需要 寫一個堆排序和快速排序;
* */
/*
或者是插入排序,去調最尾端的;
或者是100對100;然後將100歸併,再次100歸併
對象類型的,每次,加入,然後刪除一部分,餘下的就是最大的
優先級是public protect 同一包及其 子類
default private // 同一包
* */
public static void main(String[] args) {
int number = 20;
int k = 5;
int range = 21;
int[] array = new int[number];
Random random = new Random();
for (int i = 0; i < number; i++) {
array[i] = random.nextInt(range);
}
System.out.println(Arrays.toString(array));
int[] re=paiByTools(array, k);
System.out.println(Arrays.toString(re));
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
static int[] paiByTools(int[] array,int k){
int[] re=new int[k];
for (int i = 0; i < k; i++) {
re[i]=array[i];
}
Arrays.sort(re);
//取數,比較,移除一個,但是數組不好移除
for (int i = k; i < array.length; i++) {
int inde=-1;
for (int j = 0; j < re.length; j++) {
if(re[j]<array[i]){
if(j==k-1){
inde=j;
}
}
else{
inde=j-1;//4
break;
}
}
if(inde!=-1){
for (int j = 1; j <=inde; j++) {
re[j-1]=re[j];
}
re[inde]=array[i];
}
System.out.println(i+"---"+Arrays.toString(re));
}
return re;
}
但是通常是對象的數據排序,有時候還有並列的情況
那就 Collections.sort(list);list.sublist(1,11);每次都需要調用接口自己拍;很簡單吧;