黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 面試必備——java算法面試題

面試必備——java算法面試題

更新時間:2020-10-27 17:50:35 來源:動力節點 瀏覽1358次

算法是學習計算機的基礎,更是學習編程必會的內容。在java程序員的面試中,對應聘者基礎知識的掌握情況越來越重視,因此java算法面試題是大家在面試前必須要做的準備工作之一,下面整理了10道常考的java算法面試題,都是必會的基礎題。

image.png

1、初級java排序算法的原理?

答:冒泡排序:重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。

選擇排序:在要排序的一組數中,選出最小的一個數與第一個位置的數交換;然后在剩下的數當中再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最后一個數比較為止。

插入排序:每步將一個待排序的記錄,按其順序碼大小插入到前面已經排序的字序列的合適位置(從后向前找到合適位置后),直到全部插入排序完為止。

希爾排序:先將整個待排序的記錄序列分割成為若干子序列分別進行直接插入排序,待整個序列中的記錄“基本有序”時,再對全體記錄進行依次直接插入排序。


2、解釋什么是冒泡排序算法?

答:冒泡排序算法也稱為下沉排序。在這種類型的排序中,要排序的列表的相鄰元素之間互相比較。如果它們按順序排列錯誤,將交換值并以正確的順序排列,直到最終結果“浮”出水面。


3、什么是復制回收算法?

答:把堆均分成兩個大小相同的區域,只使用其中的一個區域,直到該區域消耗完。此時垃圾回收器終端程序的執行,通過遍歷把所有活動的對象復制到另一個區域,復制過程中它們是緊挨著布置的,這樣也可以達到消除內存碎片的目的。復制結束后程序會繼續運行,直到該區域被用完。

但是,這種方法有兩個缺陷:對于指定大小的堆,需要兩倍大小的內存空間;需要中斷正在執行的程序,降低了執行效率。


4、按代回收算法按代回收是為什么?

答:為什么要按代進行回收?這是因為不同對象生命周期不同,每次回收都要遍歷所有存活對象,對于整個堆內存進行回收無疑浪費了大量時間,對癥下藥可以提高垃圾回收的效率。主要思路是:把堆分成若搞個子堆,每個子堆視為一代,算法在運行的過程中優先收集“年幼”的對象,如果某個對象經過多次回收仍然“存活”,就移動到高一級的堆,減少對其掃描次數。


5、解釋二分法檢索如何工作?

答:在二分法檢索中,我們先確定數組的中間位置,然后將要查找的值與數組中間位置的值進行比較,若小于數組中間值,則要查找的值應位于該中間值之前,依此類推,不斷縮小查找范圍,直至得到最終結果。

image.png

6、解釋是否可以使用二分法檢索鏈表?

答:由于隨機訪問在鏈表中是不可接受的,所以不可能到達O(1)時間的中間元素。因此,對于鏈表來說,二分法檢索是不可以的(對順序鏈表或排序后的鏈表是可以用的)。


7、解釋什么是堆排序?

答:堆排序可以看成是選擇排序的改進,它可以定義為基于比較的排序算法。它將其輸入劃分為未排序和排序的區域,通過不斷消除最小元素并將其移動到排序區域來收縮未排序區域。


8、解釋一個算法的最佳情況和最壞情況之間有什么區別?

答:最佳情況:算法的最佳情況解釋為算法執行最佳的數據排列。例如,我們進行二分法檢索,如果目標值位于正在搜索的數據中心,則這就是最佳情況,最佳情況時間復雜度為0。

最差情況:給定算法的最差輸入參考。例如快速排序,如果選擇關鍵值的子列表的最大或最小元素,則會導致最差情況出現,這將導致時間復雜度快速退化到O(n2)。


9、使用遞歸算法輸出某個目錄下所有文件和子目錄列表

答:

package com.bjsxt;

import java.io.File;

public class $ {

public static void main(String[] args) {

        String path = "D:/301SXT";

        test(path);

    }

    private static void test(String path) {

        File f = new File(path);

        File[] fs = f.listFiles();

        if (fs == null) {

            return;

        }

        for (File file : fs) {

            if (file.isFile()) {

                System.out.println(file.getPath());

            } else {

                test(file.getPath());

            }

        }

    }


10、說明一下java排序的基本概念是什么?

答:排序主要分為兩類:內部排序和外部排序,java各種排序算法其實指的是內部排序算法。內部排序是基于內存的,整個排序過程都是在內存中完成的,而外部排序指的是由于數據量太大,內存不能完全容納,排序的時候需要借助外存才能完成(常常是算計著某一部分已經計算過的數據移出內存讓另一部分未被計算的數據進入內存)。


算法是學習java編程的基礎,因為是否有一個扎實的基本功是面試官衡量是否能勝任java程序員崗位的一個標準,Java算法面試題更是基本功中的基本。當然這些題目肯定不能包含java算法的所有知識點,在java教程中會涵蓋所有算法的內容。大家可以通過這10道java算法面試題來自測自己對算法的掌握程度怎么樣,及時的查漏補缺。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 就草草在线观看视频 | 国产日日干 | 欧美黑白配性xxxxx | 日本免费不卡 | 日本一区二区视频 | 伊人网伊人 | 欧美日韩在线观看区一二 | 欧美人在线 | 国产精品久久久 | 丁香激情五月 | 亚洲另类视频 | 色欲麻豆国产福利精品 | 欧美a在线观看 | 在线观看欧美亚洲 | 国产成人免费手机在线观看视频 | 欧美专区亚洲 | 国产在线乱子伦一区二区 | 国产高清在线不卡 | 日韩精品影视 | 欧美日韩国产另类一区二区三区 | 国产精品免费视频一区 | 国产午夜在线视频 | www.男女 | 欧美怡红院免费的视频 | 国产自啪啪 | 免费黄色片在线 | 天天干天天做 | 精品久久久久久中文字幕欧美 | 最近中文字幕视频完整 | 成人十八影院在线观看 | h片在线播放免费高清 | 看黄色一级毛片 | 色爱区综合激情五月综合色 | 免费在线观看的黄色网址 | 欧美高清精品 | 久久www免费人成看片色多多 | 性片网址 | 可以免费观看一级毛片黄a 可以免费观看的一级毛片 可以免费观看的黄色网址 可以看的黄色网址 | 日韩毛片免费观看 | 一区二区中文字幕 | 五月婷婷丁香色 |