員工年齡排序演算法

2021-07-11 19:01:33 字數 1624 閱讀 8828

//對公司幾萬員工年齡排序

#include "vector"

#include "iostream"

using namespace std;

void arrayprint(int a, int n)

void sortages0(int ages, int length)

int count = 0;

for (size_t i = 0; i < 100; i++) }

void sortages1(int ages, int length)

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

int count = 0;

for (int i = 0; i < 100; i++) }

}#include "map"

void sortages2(int ages, int length)

int count = 0;

for (map:: iterator iter = bucket.begin(); iter != bucket.end(); iter++) }

}#include "random"

#include "ctime"

#include "fstream"

#define n 100

void test()

; ofstream file;

clock_t t0 = clock();

for (int j = 0; j < 10; j++)

sortages0(ages, n);

arrayprint(ages, n);

} file << "sortaage0: " << clock() - t0 << "ms" << endl;

t0 = clock();

for (int j = 0; j < 10; j++)

sortages1(ages, n);

arrayprint(ages, n);

} file << "sortaage1: " << clock() - t0 << "ms" << endl;

t0 = clock();

for (int j = 0; j < 10; j++)

sortages2(ages, n);

arrayprint(ages, n);

} file << "sortaage2: " << clock() - t0 << "ms" << endl;

file.close();

}int main()

三次執行時間結果:

sortaage0: 176ms

sortaage1: 160ms

sortaage2: 142ms

sortaage0: 160ms

sortaage1: 139ms

sortaage2: 141ms

sortaage0: 148ms

sortaage1: 137ms

sortaage2: 142ms

可以看到,第二和第三時間差不多,只是map建樹稍微要麻煩一點,記憶體方面細算也沒有特別的優勢。

第一種方法記憶體o(n)時間也慢。

所有員工年齡排序

何海濤 劍指offer 名企面試官精講典型程式設計題 九度oj 題目描述 公司現在要對所有員工的年齡進行排序,因為公司員工的人數非常多,所以要求排序演算法的效率要非常高,你能寫出這樣的程式嗎?輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 代表公司...

企業員工年齡排序

題目 已知企業所有員工得年齡,請將所有員工得年齡從小到大排序。程式 include void sortage int age,int num 存放0 99歲各個年齡得人數 int index 0 重新賦值age時陣列索引 統計各個年齡人數 for int i 0 i num i 將年齡從小到大存入a...

所有員工年齡排序

時間限制 1 秒記憶體限制 32 兆特殊判題 否 題目描述 公司現在要對所有員工的年齡進行排序,因為公司員工的人數非常多,所以要求排序演算法的效率要非常高,你能寫出這樣的程式嗎?輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 代表公司內員工的人數。...