Java演算法篇在乙個int陣列中尋找最大的k個數字

2021-08-27 11:10:40 字數 780 閱讀 6511

在乙個int陣列中,尋找最大的k個數字,時間複雜度是o(n)。

思路:第一步:

找到原陣列最大值,利用比較計算

第二步:

新建陣列,size是第一步中的最大值+1;

第三步:

迴圈原來陣列,利用temp[a[i]]++,計算索引表示的數字在原陣列出現次數

第四步:

倒序遍歷新的陣列,如果元素值不為0,列印下標,迴圈列印,直到陣列值為0,並計算列印的元素個數count++,直到count等於k,完成輸出

package com.puhui.goosecard.web;

/** * 2 * @author: kerry

* 3 * @date: 2018/9/6 19:45

* 4*/public class test

}return max;

}public static void main(string args) ;

int max = searchmax(a);

int k = 5;

//max加1否則是0-97,陣列越界98

int temp = new int[max + 1];

for (int i = 0; i < a.length; i++)

int count = 0;

for (int j = max; j >= 0; j--)

//可能有相同的所以不用if,用while

while (temp[j] > 0) }}

}

java基礎將乙個int陣列轉換成乙個字串

並輸出在控制台上 將乙個int 陣列轉換成乙個字串 public class inttostringdemo 呼叫自定義方法將int陣列的方法轉換成字串 tostringmethod i private static void tostringmethod int arr 自定義乙個字元緩衝區,st...

演算法9 在乙個迴圈有序的陣列裡查詢乙個數

採用中分方法進行查詢,考慮到是迴圈有序的陣列,存在一邊有序的情況,將中間值與最左邊值比較,檢視是否有序,則左有序,否則就是右有序。然後再確定待查詢值的區域。loopbuffer 迴圈有序陣列 length 迴圈有序陣列長度 value 待查詢的數 return 返回待查詢數在陣列中的位置 int b...

EM演算法的乙個例項(java

主要在一維情況下實現的 em演算法,具體就是實現如下內容。目的是為了幫助學習掌握 em演算法。並不一定能讓你掌握演算法的原理,但是通過 你可以大體知道演算法的流程,之和再去學習原理也就更容易理解和掌握了。一維情況下的em演算法實現 author aturbo 1 求期望 e step 2 期望最大化...