劍指offer 員工年齡排序

2021-09-06 22:49:45 字數 683 閱讀 9409

典型的以空間換時間問題,思路非常重要!

/*

員工年齡排序

員工可能有幾萬名,要求時間複雜度為o(n)

思路:員工的年齡必定在乙個範圍內,比方0-99,那麼我們建立乙個大小為100的輔助陣列,然後遍歷

員工年齡,取到乙個年齡就將該年齡相應陣列位置的值加1,終於陣列中便儲存了不同年齡的員工的個數

最後,列印陣列就可以。

by rowandjj

2014/7/22

*/#includeusing namespace std;

#define max 100

void sort(int ages,int len)

//遍歷年齡陣列,獲取不同年齡的員工個數存到輔助陣列中

for(i = 0;i < len; i++)

//對年齡陣列排序

int index = 0;

for(i = 0; i < max; i++) }

}int main()

; sort(ages,25);

for(int i = 0; i < 25; i++)

{ cout測試:

劍指offer 年齡排序問題)

公司現在要對所有員工的年齡進行排序,因為公司員工的人數非常多,所以要求排序演算法的效率要非常高,要求時間複雜度為o n 使用桶排序 例子 首先出場的我們的主人公小哼,上面這個可愛的娃就是啦。期末考試完了老師要將同學們的分數按照從高到低排序。小哼的班上只有5個同學,這5個同學分別考了5分 3分 5分 ...

劍指Offer 對公司人員年齡進行排序

題目 對公司所有員工年齡進行排序。公司有大約幾萬名的員工,要求時間複雜度在o n 內,可以借助常數項的輔助空間。public static void sortages int ages int length ages.length int timesofage new int 99 1 掃瞄整個有效...

《劍指offer》 排序

一 資料流中的中位數 題目描述 如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用insert 方法讀取資料流,使用getmedian 方法獲取當前讀取資料...