實現乙個時間效率為O N 的排序演算法

2021-07-31 12:37:22 字數 694 閱讀 6419

如果這些數字的大小在乙個明確的範圍內,這個範圍不是特別大,就可以借助輔助空間實現時間效率為o(n),讓我們從例子中來體會這中思想;

例:對公司所有員工的年齡進行排序,公司總共有幾萬名員工,對年齡進行排序,可以使用輔助空間,要求時間複雜度為o(n)。

分析:年齡肯定是有一定範圍的,1--100是基本的壽命,所以我們開闢乙個大小為101的陣列age,每個陣列的下標表示年齡,裡面存放的是這個年齡出現的次數;

遍歷依次所有員工年齡,將各個年齡出現次數統計到陣列age中;遍歷age中的年齡次數,直接就可以對年齡排序;

下面是**實現:

void sortage(size_t staffage, size_t length)  //年齡範圍1--100;

int const oldage = 100;

size_t ages[oldage] = ;

//遍歷員工年齡陣列,統計所有年齡

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

int index = 0;

//遍歷ages,直接對staffage排序

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

}

乙個時間效率為O n 的排序演算法

題目 請實現乙個排序演算法,要求時間效率為o n 允許使用常量大小的輔助空間不得超過o n 首先回顧一下自己實現了的幾種常用的排序演算法 一 插入排序 1 include2 using namespace std 3void insert sort int a,int size 414 a i 1 ...

C 封裝乙個時間庫

h檔案是這樣的 pragma once include include int dayoftheweek int nyear,int nmonth,int nday 等待時間超時 int waittimeout unsigned int nmilliseconds class cmylocaltim...

開發乙個時間小程式

為什麼不自己動手量身打造乙個呢?行動起來。很簡單 需要展示時間的城市初定 加州 紐約,再加北京做對比 需要顯示具體的時分秒,和年月日 需要實時變化 在其他國家也能正確展示時間 這個小程式的核心是時間的處理。如何得到其他地區的時刻資訊?這還不簡單?先獲取本地時刻,然後加上或者減去另外乙個地點與國內 北...