家鄉的石橋故事作文
簡(jiǎn)答題:

1、請設計一個(gè)排隊系統,能夠讓每個(gè)進(jìn)入隊伍的用戶(hù)都能看到自己在 中所處的位置和變化。隊伍可能隨時(shí)有人加入和退出,當有人退出影響到用戶(hù)的位置排名時(shí)需要即時(shí)反饋到用戶(hù)。
2、A、B兩個(gè)整數集合,設計一個(gè)算法求他們的交集,盡可能的高效。
(博主能力有限,不是所有題目都會(huì )求解,第1題不是我的擅長(cháng),這里貼出來(lái)讓大家知道騰訊的考題。我的重點(diǎn)放在第2題上面!)
第2題 題解(個(gè)人見(jiàn)解,僅供參考!)
思路1:排序法
對集合A和集合B進(jìn)行排序(升序,用快排,平均復雜度O(N*logN)),設置兩個(gè)指針p和q,同時(shí)指向集合A和集合B的最小值,不相等的話(huà)移動(dòng)*p和*q中較小值的指針,相等的話(huà)同時(shí)移動(dòng)指針p和q,并且記下相等的數字,為交集的元素之一,依次操作,直到其中一個(gè)集合沒(méi)有元素可比較為止。
優(yōu)點(diǎn):操作簡(jiǎn)單,容易實(shí)現。
缺點(diǎn):使用的排序算法不當,會(huì )耗費大量的時(shí)間,比如對排好序的集合使用快排, 時(shí)間復雜度是O(N2)這種算法是大家都能比較快速想到的辦法,絕大多數時(shí)間放在了對集合的排序上,快排的平均復雜度是O(N*logN),對排好序的集合做查找操作,時(shí)間復雜度為O(N),當然這種算法肯定比遍歷要快多了。
code:
#include
#include
#define M 8
#define N 5
int cmp(const void *a, const void *b)
{
int *x = (int *)a;
int *y = (int *)b;
return (*x) - (*y);
}
int main(void)
{
int A[] = {-1, 2 ,39 ,10, 6, 11, 188, 10};
int B[] = {39 ,8 , 10, 6, -1};
/pic/p>
qsort(A, M, sizeof(int), cmp);
qsort(B, N, sizeof(int), cmp);
/pic/p>
int i = 0, j = 0;
int cnt = 0;
int result[M > N ? M : N];/pic/p>
/pic/p>
【家鄉的石橋故事作文】相關(guān)文章:
故鄉的青石橋作文(精選11篇)04-23
家鄉的故事作文范例(15篇)11-30
游石橋寺四年級作文(通用18篇)12-10
家鄉家鄉作文04-26
家鄉的水家鄉作文04-05
家鄉作文家鄉的變化05-16
(實(shí)用)家鄉家鄉作文09-02
家鄉家鄉作文(集合)09-18
家鄉的冬天作文 家鄉的冬天作文02-25
家鄉的山作文 描寫(xiě)家鄉的作文06-09
- 相關(guān)推薦