激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JAVA中尋找最大的K個數解法

JAVA中尋找最大的K個數解法

2019-11-20 15:10Java教程網 JAVA教程

尋找最大的K個數,這個是面試中比較常見的一道題,網上也有很多例子,在這里是比較傳統的解法

這個題拿到之后首先會想到排序,排好序之后在選取選取最大的K個數。排序選擇快速排序是個比較好的選擇。
好了,讓我們來進行第一個解法:快速排序
代碼如下

復制代碼代碼如下:


public static void quickSort(int[] arr, int start, int end) {
  if (start < end) {
   int key = arr[start];
   int right = start;
   int left = end;
   while (right < left) {
    while (right < left && arr[left] > key) {
     left --;
    }
    if (right < left) {
     arr[right] = arr[left];
    }
    while (right < left && arr[right] <= key) {
     right ++;
    }
    if (right < left) {
     arr[left] = arr[right];
    }
   }
   arr[right] = key;
   quickSort(arr, start, right-1);
   quickSort(arr, left+1, end);
  }
 }


快速排序之后,數組會是有序的,上面的排序是從小到大的,所以我們輸出應該是下面這樣

復制代碼代碼如下:

                int k = 4;
  for (int i=arr.length-1; i>=arr.length-k; i--) {
   System.out.println(arr[i]+"  ");
  }


。第一個解法已經好了,但是有沒有更好的辦法。
答案是有的!我們可以選擇部分排序,接下來我們使用選擇排序來做解決這個問題。
代碼如下:

復制代碼代碼如下:

public static int[] selectSortK(int[] arr, int k) {
  if(arr == null || arr.length == 0) {
   return null;
  }
  int[] newArr = new int[k];
  List<Integer> list = new ArrayList<Integer>();//記錄每次最大數的下標
  for (int i=0; i<k; i++) {
   int maxValue = Integer.MIN_VALUE; //最大值
   int maxIndex = i; 
   for (int j=0; j<arr.length; j++) {
    if (arr[j] > maxValue && !list.contains(j) ) {
     maxValue = arr[j];
     maxIndex = j;
    }
   }
   if (!list.contains(maxIndex)) {//如果不存在,就加入
    list.add(maxIndex);
    newArr[i] = maxValue;
   }
  }
  return newArr;
 }

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一级毛片 | 26uuu成人人网图片 | 日韩视频一区在线 | 羞羞网站入口 | 国产精品一区二区三区在线 | 国产一级免费不卡 | 国产亚洲精品久久久久5区 男人天堂免费 | 欧美黄色免费视频 | 中文字幕电影免费播放 | 伊人亚洲精品 | 久久久久国 | 激情夜色 | 成人精品一区二区 | 羞羞草视频 | 国产精品久久av | 欧洲精品久久久久69精品 | 成人福利在线观看 | 亚洲精品a级 | 在线视频 欧美日韩 | 羞羞视频免费网站男男 | 99精品国产视频 | 亚洲草逼视频 | 亚洲欧美日韩精品久久亚洲区色播 | 欧美自拍 | 国产一区二区三区撒尿在线 | 在线成人免费网站 | 成人偷拍片视频在线观看 | 91短视频网页版 | 精品国产一二区 | 调教小男生抽打尿孔嗯啊视频 | 九九热在线精品视频 | 黄色一级视频 | 日韩视频一二三 | 亚洲一区二区欧美 | 国产精品视频一区二区三区四区五区 | 国内精品久久久久久久影视红豆 | 久久久久性 | 美女在线视频一区二区 | 久久伊 | 在线日韩av电影 | 黄色大片免费网站 |