大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

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

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

算法是學習計算機的基礎,更是學習編程必會的內容。在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算法面試題來自測自己對算法的掌握程度怎么樣,及時的查漏補缺。


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 寂寞午夜影院 | 婷婷四房 | 亚洲国产日韩欧美 | 亚洲爱婷婷色婷婷五月 | 毛片视频免费观看 | 亚洲三级视频在线 | 99久久99热久久 | 精品一区国产 | 欧美日韩视频在线 | 国产免费私人影院永久免费 | 午夜精品久久影院蜜桃 | 亚洲欧美日韩国产综合 | 豆国产93在线 | 亚洲 | 欧美一级毛片在线播放 | www.欧美日本免费视频 | 亚洲欧美日韩第一页 | 黄色综合 | 伊人久久在线 | 手机看高清特黄a大片 | 99综合在线 | 在线亚洲精品国产成人二区 | 破外女出血一级毛片 | 欧美日韩在线播一区二区三区 | 久久精品综合一区二区三区 | 天天操天天射天天色 | 精品久久久中文字幕二区 | 中文字幕2区| 久久综合伊人 | 99超级碰碰成人香蕉网 | 欧美日韩第三页 | 日韩精品视频在线观看免费 | 精品一区二区三区三区 | 女人18毛片a级毛片免费视频 | 国产成人精品午夜二三区 | 色涩在线观看 | 第一福利在线观看永久视频 | 99热在线看| 女人夜色黄网在线观看 | 九九九精品 | 亚洲va欧美va国产va天堂 | 亚洲和欧美毛片久久久久 |