成為Java頂尖程序員,先過了下面問題3炙怼(一)

一即硼、數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)

1.說一下幾種常見的排序算法和分別的復(fù)雜度。
  • 冒泡排序
    核心思想:遍歷數(shù)組N次屡拨,每次將最大的數(shù)字交換到最后只酥。
    時間復(fù)雜度:O(N2)
    空間復(fù)雜度:O(1)

  • 快速排序
    核心思想:選擇一個基準數(shù),比它小的數(shù)放左邊呀狼,比它大的數(shù)放右邊裂允,依次遞歸。
    時間復(fù)雜度:最壞情況 O(N2)赠潦,平均 O(N*lgN)
    空間復(fù)雜度:主要來源于遞歸棧叫胖,因此最多O(N) 最少 O(lgN)

  • 插入排序
    核心思想:打撲克牌時摸牌階段的排序。
    時間復(fù)雜度:O(N2)
    空間復(fù)雜度:O(1)

  • 選擇排序
    核心思想:從沒有排序的數(shù)列中找到最小的放在最前面她奥,不停重復(fù)瓮增。(和冒泡類似)
    時間復(fù)雜度:O(N2)
    空間復(fù)雜度:O(1)

  • 堆排序
    核心思想:利用“最大堆”(最小堆類似)每次找出最大的值,從而形成有序數(shù)組哩俭。
    時間復(fù)雜度:O(N*lgN)
    空間復(fù)雜度:O(1)

  • 歸并排序
    核心思想:將兩個有序數(shù)組合并成一個數(shù)組绷跑,利用遞歸,從兩個單個元素開始一直到一整個數(shù)組凡资。
    時間復(fù)雜度:O(N*lgN)
    空間復(fù)雜度:O(N)砸捏,在合并數(shù)組時需要借助新的空間。

2.用Java寫一個冒泡排序算法

    public static void bubble(int[] arr) {
        for (int i = arr.length - 1; i >= 0; i--) {
            for (int j = 0; j < i; j++) {
                if (arr[j] > arr[i]) {
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
    }
3.描述一下鏈式存儲結(jié)構(gòu)隙赁。

常見的鏈式存儲結(jié)構(gòu)有單向鏈表雙向鏈表垦藏。鏈表的結(jié)構(gòu)特點就是有一個值字段,同時有指向下一個結(jié)點或者上一個結(jié)點的字段伞访。java中定義如下:

    //單向鏈表
    public class ListNode {
        int val;
        ListNode next;
    }

    //雙向鏈表
    public class ListNode {
        int val;
        ListNode pre;
        ListNode next;
    }
4.如何遍歷一棵二叉樹掂骏?

二叉樹的遍歷有前序遍歷,中序遍歷和后續(xù)遍歷厚掷〉茏疲可以使用遞歸來完成,亦可使用循環(huán)的方式完成冒黑。

5.倒排一個LinkedList田绑。
  • 方法1:如果利用一個棧來存放,那么依次入棧抡爹,再依次出棧即可立即完成倒排掩驱。
  • 方法2:從左往右依次倒排,進行到i的位置時冬竟,i前面的是倒排的昙篙,i后面還是順排的。
6.用Java寫一個遞歸遍歷目錄下面的所有文件诱咏。

    //遍歷一個目錄下所有的文件
    public static void ScanFiles(File file) {
        if (file == null || !file.exists()) {
            return;
        }
        if (!file.isDirectory()) {
            System.out.println(file.getName());
        } else {
            File[] files = file.listFiles();
            if (files != null) {
                for (File f : files) {
                    ScanFiles(f);
                }
            }
        }
    }

目錄列表
一苔可、數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)
二、Java基礎(chǔ)
三袋狞、JVM
四焚辅、多線程/并發(fā)
五、Linux使用與問題分析排查
六苟鸯、框架使用
七同蜻、數(shù)據(jù)庫相關(guān)
八、網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)編程
九早处、Redis等緩存系統(tǒng)/中間件/NoSQL/一致性Hash等
十湾蔓、設(shè)計模式與重構(gòu)
本文是針對知乎文章《成為Java頂尖程序員,先過了下面問題》的解答

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砌梆,一起剝皮案震驚了整個濱河市默责,隨后出現(xiàn)的幾起案子贬循,更是在濱河造成了極大的恐慌,老刑警劉巖桃序,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杖虾,死亡現(xiàn)場離奇詭異,居然都是意外死亡媒熊,警方通過查閱死者的電腦和手機奇适,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芦鳍,“玉大人嚷往,你說我怎么就攤上這事∧疲” “怎么了皮仁?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茄茁。 經(jīng)常有香客問我魂贬,道長,這世上最難降的妖魔是什么裙顽? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任付燥,我火速辦了婚禮,結(jié)果婚禮上愈犹,老公的妹妹穿的比我還像新娘键科。我一直安慰自己,他們只是感情好漩怎,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布勋颖。 她就那樣靜靜地躺著,像睡著了一般勋锤。 火紅的嫁衣襯著肌膚如雪饭玲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天叁执,我揣著相機與錄音茄厘,去河邊找鬼。 笑死谈宛,一個胖子當著我的面吹牛次哈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吆录,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼窑滞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哀卫,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤巨坊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后聊训,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抱究,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡恢氯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年带斑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勋拟。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡勋磕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敢靡,到底是詐尸還是另有隱情挂滓,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布啸胧,位于F島的核電站赶站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纺念。R本人自食惡果不足惜贝椿,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陷谱。 院中可真熱鬧烙博,春花似錦、人聲如沸烟逊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宪躯。三九已至乔宿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間访雪,已是汗流浹背详瑞。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冬阳,地道東北人蛤虐。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像肝陪,于是被迫代替她去往敵國和親驳庭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

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

  • 1 序 2016年6月25日夜,帝都饲常,天下著大雨蹲堂,拖著行李箱和同學(xué)在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,076評論 0 12
  • 第一章 緒論 什么是數(shù)據(jù)結(jié)構(gòu)贝淤? 數(shù)據(jù)結(jié)構(gòu)的定義:數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合柒竞。 第二章...
    SeanCheney閱讀 5,742評論 0 19
  • 1. 鏈表 鏈表是最基本的數(shù)據(jù)結(jié)構(gòu),面試官也常常用鏈表來考察面試者的基本能力播聪,而且鏈表相關(guān)的操作相對而言比較簡單朽基,...
    Mr希靈閱讀 1,430評論 0 20
  • ? ?? ??? ?? ???? ,??? ????? , ??? ?? ???? .
    明媚妖無格閱讀 243評論 0 1
  • 不想抬起頭, 看見我明媚憂傷离陶。 留淚的不語稼虎, 敲打著我的心房。 不想回到家招刨, 看見我藏匿偽裝霎俩。 奈無言涕笑, 從五...
    南喬北笙閱讀 319評論 0 3