BitCount兩種實現以及效率比較

2021-08-03 02:26:34 字數 1735 閱讀 1991

輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。

一、第一種實現

這也是比較多人使用的一種演算法。

public

static

int bitcount(int i)

return

count;

}

二、第二種實現檢視integer類,發現其中提供了乙個bitcount介面,具體的實現如下:

/**

* returns the number of one-bits in the two's complement binary

* representation of the specified value. this function is

* sometimes referred to as the population count.

**@param i the value whose bits are to be counted

*@return the number of one-bits in the two's complement binary

* representation of the specified value.

*@since 1.5

*/public

static

intbitcount(int i)

三、進行效率比較。1、將0~99999這100000個資料作為測試用例,得到結果:

2、將0~299999這300000個資料作為測試用例,得到結果:

3、將0~499999這500000個資料作為測試用例,得到結果:

4、將0~999999這1000000個資料作為測試用例,得到結果:

5、將0~9999999這10000000個資料作為測試用例,得到結果:

6、將0~99999999這100000000個資料作為測試用例,得到結果:

7、將0~999999999這1000000000個資料作為測試用例,得到結果:

四、總結。

在少量的資料處理時,方法1的效率比方法2高一些。在資料量大於500000時,資料量越大,方法2(也就是integer提供的api)的優勢越明顯,它的執行時間很穩定,不會隨資料量的增大而發現較大改變。

Android 兩種方式實現類似水波擴散效果

兩種方式實現類似水波擴散效果,先上圖為敬 自定義view實現 動畫實現 思路分析 通過canvas畫圓,每次改變圓半徑和透明度,當半徑達到一定程度,再次從中心開始繪圓,達到不同層級的效果,通過不斷繪製達到view擴散效果 private paint centerpaint 中心圓paint priv...

Java多執行緒的簡單實現以及耗時操作的效率對比

public class threaddemo system.out.println 開始請求 singlethread command,executecount multithread command,executecount,100 單執行緒執行 param runnable run param...

兩種方式實現checkBox readonly功能

今天在做開發的時候遇到了這樣乙個問題 有乙個checkbox選項是不能被改變的。但是checkbox又是沒有readonly屬性的,這個時候我就想到了另外乙個屬性disabled,但是disabled的物件是不能提交到後台的,所以這個又被排除掉了。想了想,只能新增事件來搞定了。於是在checkbox...