1樓:匿名使用者
#include#include
int get_2nd_num(int a,int size)int i, _1st = a[0], 2nd = int)((unsigned int)-1) >1) +1);
for (i = 1; i < size; +i)if (a[i] >1st)
2nd = 1st;
1st = a[i];
else if (a[i] >2nd)
2nd = a[i];
return _2nd;
int main()
int aprintf("%d", get_2nd_num(a, sizeof(a) /sizeof(a[0]))
system("pause");
return 0;
超祥握棒的**,可惜不是自謹銷慶己寫的鬥扮csdn裡面一同志的,發不了連線。
2樓:匿名使用者
排序後a[1]就是第二小的數。
設一維陣列中有n個陣列元素,則讀取第i個陣列元素的平均時間複雜度為多少?
3樓:信必鑫服務平臺
平均時間複雜度為o(1)。
陣列是計算機程式語言上,對於「array」的中文稱呼,是用於儲存多個相同型別資料的集合。將相同資料型別的元素按一定順序排列的集合,把有限個型別相同的變數用乙個名字命名。
然後用編號區分他們的變數的集合,這個名字成為陣列名,編號成為下標。組成陣列的各個變數成為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。
陣列是在程式設計中,為了處理方便, 把具有相同型別的若干變數按有序的形式組織起來的一種形式。這些按序排列的同類資料元素的集合稱為陣列。
從乙個容量為n的無序整數陣列中,依次選出前k大的數(k
4樓:網友
1全部應選a,用的是快速排速的思想,第一次劃分o(n),然後在下面有選擇的快排,可達o(klogn)故選a
5樓:網友
d吧,用快速排序,再選前k個。
6樓:匿名使用者
構造堆(log n)然後乙個乙個往出抽 k 個(k log n)。
乙個無序陣列,任意兩個數相加等於乙個給定的數,並且用複雜度最小的方法得出
7樓:天上一堆星
1. 最簡單的方法就是窮舉,這種雖然簡單,但是非常不划算,時間複雜度達到o(n^2)
2. 可以換乙個角度考慮,給定的數如果是m,那麼針對陣列中乙個數字n,我們只需要查詢一下數。
組中是否含有m-n就可以了,這樣就轉換為陣列查詢問題了,然後可以利用空間換時間來搞。
定,搞乙個hash表,然後把每乙個都對映到hash表中去,然後查詢的時候就需要o(1)就可以。
了,只不過空間複雜度達到o(n)
3. 可以先排序一下,使用快排,時間複雜度為o(nlogn),然後令i = 0, j = n - 1,計算sum = arr[i]
arr[j],如果sum大於m就讓j = j - 1,否則讓i = i + 1,這樣一輪下來就可以了,時間複雜度。
o(n),總的時間複雜度為o(nlogn)
從乙個二維陣列b[m][n]中找出最大值元素的時間複雜度為 a. m b. n c. m+n d. m*n
8樓:網友
答案為d m*n
先從每一行找出最大的元素值,複雜度為m, 因為有m列, 又因為陣列有有n行,所以時間複雜度為m*n
在限定時間複雜度o(n),空間複雜度o(1)條件下,對陣列排序。要求大於0元素的在數字0左邊,小於
9樓:緣明思
不知道數字的總量嗎?
是否隊首隊尾指標相等,是則結束迴圈。
如果隊首小於0,則觀察隊尾。
隊尾大於0,則交換隊首隊尾。小於則,隊尾保留,向隊首移動1個比較直至可以交換。
等於0則。如果隊尾指標為下乙個隊首指標的位置,則只比較和交換。
否則,交換該元素和其下乙個元素。且不移動隊尾指標。
如果隊首大於0,則向隊尾移動1個繼續比較。
如果隊首等於0,如果隊尾指標為下乙個隊首指標的位置,則只比較和交換。
否則,交換該元素和其下乙個元素。且不移動隊首指標。
由於0元素的存在和無法確定的陣列長度,導致我想出來的這個破東西的時間複雜度大概是n+n/2
好像還是算作n的。
10樓:匿名使用者
大神大聲的告訴我什麼排序方法的平均時間複雜度是o(n)?
怎樣求乙個二維陣列元素之和以及二維陣列元素的最小值及下標
這裡需要用到指標,可以用到位址法 a i j這樣的 或者指標 ptr 這種 來輸入輸出二維陣列的各個元素,然後求和最小值 假設二維陣列下標為的元素最小和用指標指向該元素,後續的元素和其比較,若還有更小的則替換 然後輸出其值和對應的指標 指標所指位址為其下標所指位址。類似題目二維陣列在記憶體中是按行存放...
c語言程式設計將兩個一維陣列中的數對應相加並在陣列中儲存
include using namespace std void main include include include void main for i 0 i 10 i puts for i 0 i 10 i puts for i 0 i 10 i puts include void main ...
C怎麼樣拿到二維陣列中的第一行第一列的值
int a 3 5 3行5列二維來陣列 下標 自 從bai 0 開始,所以 第一du行第一列的 下標是 0 0 二維陣列元zhi素a j i j 對應dao 行,對應座標 y.i 對應 列,對應座標 x.二維陣列一般是 arr 行 列 和你存的方法有關,一般大家都習慣這麼個存法 第一行第一列就是ar...