百度筆試題目

2021-06-22 02:28:40 字數 558 閱讀 9314

假定有20個有序陣列,每個陣列有500個數字,數字型別32位uint數值,現在需要取出這10000個數字中最大的500個,怎麼做?

思路:20個有序陣列,不妨設數序為降序。首先把20個陣列中最大的(也就是a[i][0])進行大堆排序,輸出堆頂元素(最大),在輸出的那個元素之前所在的陣列中,取下乙個元素,放到堆頂,然後進行堆排序,在輸出堆頂元素,依次迴圈輸出500個即可。(輸出最小的500,同樣的道理,只不過進行小堆排序),這樣充分利用了題幹的條件。

#include

using

namespace

std;  

struct

node  

;  node obj[20];  

void

sift(

intk,

intm,

intb)

//調整乙個元素在堆的位置

}  }  void

s_hsort(

intn,

inta[500])  

for(k=0;k<500;k++)  

}  intmain()  

百度筆試題目

1 此題10分 對任意輸入的正整數n,編寫c程式求n 的尾部連續0的個數,並指出計算複雜度。如 18!6402373705728000,尾部連續0的個數是3。不用考慮數值超出計算機整數界限的問題 答 此題可以轉化成尋找能夠被5整除和被10整除的數,然後統計該數中末尾0的個數和能被5整除的次數。inc...

百度筆試題目及答案

請簡要描述一下hadoop,spark,mpi三種計算框架的特點以及分別適用於什麼樣的場景 a hadoop 基於分布式檔案系統hdfs的分布式批處理計算框架。適用於資料量大,spmd 單程式多資料 的應用。b spark 基於記憶體計算的平行計算框架。適用於需要迭代多輪計算的應用。c mpi 基於...

百度筆試題

一 選擇題 15分 共10題 1.在排序方法中,關鍵碼比較次數與記錄地初始排列無關的是 a.shell排序 b.歸併排序 c.直接插入排序 d.選擇排序 2.以下多執行緒對int型變數x的操作,哪幾個需要進行同步 a.x y b.x c.x d.x 1 3.void func 中,變數val的記憶體...