算法練習(xí)(2):二維數(shù)組(1.1.8-1.1.13)

本系列博客習(xí)題來自《算法(第四版)》,算是本人的讀書筆記损痰,如果有人在讀這本書的,歡迎大家多多交流酒来。為了方便討論卢未,本人新建了一個(gè)微信群(算法交流),想要加入的堰汉,請?zhí)砑游业奈⑿盘枺簔hujinhui207407 謝謝辽社。另外,本人的個(gè)人博客 http://www.kyson.cn 也在不停的更新中翘鸭,歡迎一起討論

算法(第4版)

知識點(diǎn)

  • java的基本語法
  • 十進(jìn)制與二進(jìn)制的轉(zhuǎn)換
  • 一維數(shù)組的逆序輸出
  • 二維數(shù)組的轉(zhuǎn)置(交換行與列)

題目

1.1.8 給出以下表達(dá)式的值:

a. System.out.println('b');
b. System.out.println('b' + 'c');
c. System.out.println((char) ('a' + 4));

分析

b的ASCII碼為98滴铅,c的為99

答案

b
197   
e       

題目

1.1.9編寫一段代碼,將一個(gè)正整數(shù) N 用二進(jìn)制表示并轉(zhuǎn)換為一個(gè) String 類型的值 s就乓。
解答:Java 有一個(gè)內(nèi)置方法 Integer.toBinaryString(N) 專門完成這個(gè)任務(wù)汉匙,但該題的目的就是給出這個(gè)方法的其他實(shí)現(xiàn)方法拱烁。下面就是一個(gè)特別簡潔的答案:

String s = "";
for (int n = N; n > 0; n /= 2)
     s = (n % 2) + s;

分析

雖然夠簡潔,但效率不怎么樣噩翠,Java源碼的的實(shí)現(xiàn)效率可以戏自,源碼地址:Java Integer 源碼

答案

public static String decimalToBinary(int n) {
    String resultString = "";
    for (int i = 31; i >= 0; i--)
        resultString = resultString + (n >>> i & 1);
    return resultString;
}

代碼索引

ToBinaryStringExecise.java

1.1.10 下面這段代碼有什么問題?
int[] a;
for (int i = 0; i < 10; i++)
a[i] = i * i;
解答:它沒有用 new 為 a[] 分配內(nèi)存。這段代碼會(huì)產(chǎn)生一個(gè) variable a might not have been initialized 的編譯錯(cuò)誤伤锚。

1.1.11 編寫一段代碼浦妄,打印出一個(gè)二維布爾數(shù)組的內(nèi)容。其中见芹,使用 * 表示真剂娄,空格表示假。打印出行號和列號玄呛。

private static void printout(boolean[][] a1){
    for (int i = 0; i < a1.length; i++) {
        for (int j = 0; j < a1[i].length; j++) {
            if (a1[i][j]){
                System.out.println(String.format(Locale.CHINA,"%d  %d *",i+1,j+1));
            } else {
                System.out.println(String.format(Locale.CHINA,"%d  %d /",i+1,j+1));
            }
        }
    }
}

1.1.12 以下代碼段會(huì)打印出什么結(jié)果?

    int[] a = new int[10];
    for (int i = 0; i < 10; i++)
        a[i] = 9 - i;
    for (int i = 0; i < 10; i++)
        a[i] = a[a[i]];
    for (int i = 0; i < 10; i++)
        System.out.println(a[i]);
/**網(wǎng)上看到的電子書的最后一句都有誤阅懦,是        
System.out.println(i);
應(yīng)該是System.out.println(a[i]);所以這里改掉了
**/

答案

0
1
2
3
4
4
3
2
1
0

1.1.13 編寫一段代碼,打印出一個(gè) M 行 N 列的二維數(shù)組的轉(zhuǎn)置(交換行和列)徘铝。
答案

        int[ ][ ] a={{1,2,3},{4,5,6}};  
    
        int[][] temp = new int[a[0].length][a.length];
        for (int i = 0; i < a[0].length; i++) {
            for (int j = 0; j < a.length; j++) {
                temp[i][j] = a[j][i];
                System.out.print(temp[i][j] + " ");
                if(j == a.length - 1) 
                    System.out.print("\n");
            }
        }

1.1.14 編寫一個(gè)靜態(tài)方法 lg()耳胎,接受一個(gè)整型參數(shù) N,返回不大于 log2N 的最大整數(shù)惕它。不要使用 Math 庫怕午。

     private static int lg(int N) {  
        int product = 1;  
        int x = -1;  
        while (product <= N) //*,把等于的情況也納入進(jìn)來淹魄,從而避免了在如23>5這種情況的自增導(dǎo)致輸出結(jié)果為3的情況  
        {  
            product *= 2;  
            x++;  
        }  
        return x;  
    }  
      
    public static void main(String args[]) {  
        int N = 100;
        System.out.print(lg(N));  
    }  

廣告

我的首款個(gè)人開發(fā)的APP壁紙寶貝上線了郁惜,歡迎大家下載。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末甲锡,一起剝皮案震驚了整個(gè)濱河市兆蕉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缤沦,老刑警劉巖虎韵,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缸废,居然都是意外死亡包蓝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門企量,熙熙樓的掌柜王于貴愁眉苦臉地迎上來测萎,“玉大人,你說我怎么就攤上這事梁钾∩” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵姆泻,是天一觀的道長零酪。 經(jīng)常有香客問我冒嫡,道長,這世上最難降的妖魔是什么四苇? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任孝凌,我火速辦了婚禮,結(jié)果婚禮上月腋,老公的妹妹穿的比我還像新娘蟀架。我一直安慰自己,他們只是感情好榆骚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布片拍。 她就那樣靜靜地躺著,像睡著了一般妓肢。 火紅的嫁衣襯著肌膚如雪捌省。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天碉钠,我揣著相機(jī)與錄音纲缓,去河邊找鬼。 笑死喊废,一個(gè)胖子當(dāng)著我的面吹牛祝高,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播污筷,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼工闺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了颓屑?” 一聲冷哼從身側(cè)響起斤寂,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎揪惦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罗侯,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡器腋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钩杰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纫塌。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖讲弄,靈堂內(nèi)的尸體忽然破棺而出措左,到底是詐尸還是另有隱情,我是刑警寧澤避除,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布怎披,位于F島的核電站胸嘁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凉逛。R本人自食惡果不足惜性宏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望状飞。 院中可真熱鬧毫胜,春花似錦、人聲如沸诬辈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焙糟。三九已至口渔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酬荞,已是汗流浹背搓劫。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留混巧,地道東北人枪向。 一個(gè)月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像咧党,于是被迫代替她去往敵國和親秘蛔。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法傍衡,類相關(guān)的語法深员,內(nèi)部類的語法,繼承相關(guān)的語法蛙埂,異常的語法倦畅,線程的語...
    子非魚_t_閱讀 31,634評論 18 399
  • 今天又看完一部電影《觸不可及》,拿點(diǎn)什么禮物給新年的我绣的。 很欣賞德希斯的那種很真實(shí)的人性叠赐,什么都不怕的勇氣。雖然暴...
    一縷桂花閱讀 704評論 0 0
  • 其實(shí)當(dāng)一個(gè)人真的要離開這個(gè)世界的時(shí)候屡江,是什么也帶不走的芭概,唯一能帶走的就是心底里留存下來那些記憶。 ??驚訝的是美國人...
    羅羅小倩閱讀 310評論 0 0
  • 今天女兒很開心的回來了惩嘉,回來后的第一句話就是:“爸爸你知道幸福是什么嗎罢洲?” 我本來想說點(diǎn)什么,后來想還是聽聽女兒的...
    Petershen閱讀 442評論 3 2