2018 10 29 下午 6 30 電話面試

2022-02-23 06:10:42 字數 872 閱讀 4372

1.   排序演算法

資料:十大經典排序演算法

總結:氣泡排序:每次比較相鄰的兩個,根據大小決定是否互換位置

快速排序:分治法,選擇基準值,將所有比基準值小的,放在左邊,比基準值大的,放在右邊,然後遞迴將兩邊快速排序

選擇排序:每次選出最小的乙個,與0交換,然後再次迴圈找出最小,與1交換

插入排序:構建有序佇列,從未排序佇列中,依次取出,在有序佇列中,尋找合適的位置插入

希爾排序:將陣列切割後進行插入排序, 插入排序的進化版

歸併排序:分治法,將陣列一分為二,分別採用歸併排序,(遞迴呼叫),歸併排序,將兩個有序佇列合併為乙個有序佇列, 取兩個佇列中的最小,相比較

堆排序:利用堆的性質,父節點大於子節點,即堆頂定為最大的數,然後將堆頂與堆尾互換位置,堆尾為有序區,然後重新構建堆,直至堆有序

計數排序:要求陣列為固定範圍內整數,取出最大和最小的數,從最小迴圈最大,記錄每個數出現的次數,將所有次數相加,然後迴圈記錄的陣列,依次填入新的陣列

桶排序:待排序列劃分成一段一段的範圍,依次將每乙個元素放入其指定的範圍,然後將每乙個小範圍中的數進行排序,然後依次輸出

基數排序:取得最大數的,位數 例如874 位三位,依次比較,個位,十位,百位,然後利用技術排序

2.  hash原理 

jdk1.7 如何保證 時間複雜度 o(1)

經過查詢資料後得出的結論

hashmap的時間複雜度o(1) 只是理想狀態,即無hash碰撞, 最次狀態下時間複雜度為鍊錶o(n)

在hashmap中,如果容量為n  最次狀態下, 所有key 發生hash碰撞,則鍊錶長度最多為 負載因子*n

再新增時,在jdk1.8中則轉換為紅黑樹

而要保證時間複雜度,只有程式中控制key盡量不發生hash碰撞,

1014下午考試

題目大意 有乙個 n m 的矩陣,矩陣的每個位置上可以放置乙個數。對於第i行,第i行的差異定義為該行的最大數和最小數的差。乙個矩陣的差異,定義為矩陣中每一行差異的最大值。現在給定k個數v 1.k 問 從這k個數中選 n m 個數放入矩陣,能夠得到的矩陣的差異最小值是多少。n m k 100000,n...

10 9 下午 考試

t1 f i 表示不和法數大於i個的數量 f i c n ic 首先n m k n 先不考慮 用擋板法易知 ans c 即給m個果子中間再加上n 1個擋板的位置,在選n 1個 那考慮必須放乙個的情況,只要預先把m n,相當於每個籃子先放乙個 那考慮不合法數 i個,只需要預先給i個放k個,那這i個一定...

10 30 下午考試

p76 年?月?日?題目名稱 他 她 它 名稱 he she it 輸入 he.in she.in it.in 輸出 he.out she.out it.out 每個測試點時限 1 秒 1 秒 1 秒 記憶體限制 512mb 512mb 512mb 測試點數目 10 10 10 每個測試點分值 10...