查詢陣列中最大的2個數

2021-07-03 08:13:52 字數 700 閱讀 5670

(1)在c語言的被呼叫函式中,沒有辦法求出陣列實參的大小,因此需要顯示傳遞array_length引數。詳見部落格:c語言記憶體分配時間。

(2)以o(n)的計算時間得出結果。

#include void find_2_largest(int array, int array_length, int *plargest, int *psecond_largest);

int main(void);

int largest=0;

int second_largest=0;

int array_length=sizeof(array)/sizeof(array[0]);

find_2_largest(array, array_length, &largest, &second_largest);

printf("the 2 largest number is: %d and %d.\n", largest, second_largest);

return 0;

}void find_2_largest(int array, int array_length, int *plargest, int *psecond_largest)else

for(int i=2; i*plargest)else if(array[i]>*psecond_largest)

}}

氣泡排序和查詢陣列中最大的數及查詢兩個數中最大的數

1 顯示效果 2 include int main printf 兩個數中最大的數是 d a getchar return 0 1 顯示效果 include 列印陣列 void printarray int a,int len 選出最到的數並移動到陣列的最後 void movemaxtoarraye...

求陣列中最大的K個數

最容易想到的就是迴圈遍歷陣列k次求出最大的k個數。這個演算法有許多的缺點 第一點就是速度不夠,它的時間複雜度中o k n 當陣列很大時,不能全部載入到記憶體中,這個演算法就不可行了。這道題目還有兩種比較優的解法 1.我們可以利用快速排序中的思想,快速排序每次都把資料分為兩個部分,第一部分大於某個數,...

查詢陣列中最小k個數

思路 可採用大頂堆來實現 維護乙個規模為k的大頂堆。從前往後掃瞄陣列元素 若大頂堆的size小於k,則把當前元素插入大頂堆中 若小於k,若當前元素小於堆頂元素,則刪除堆頂元素,插入當前元素。考慮到從頭實現乙個大頂堆比較麻煩,這裡使用treeset容器,它提供有序的set。treeset底層實際使用的...