求演算法把n個數中的第k大的數求出來,要求時間複雜度為O(n)

2021-07-12 17:33:47 字數 2083 閱讀 4537

1樓:

int heapsort(int *data1, int n, int bigk)//利用堆排序,存在一種優化方案:建立k大的堆

;//part 1

int i, j, j2, k;

int tmp;

for(k = (n>>1) - 1; k >= 0; k--)if(tmp < data[i])

data[j] = data[i];

else

break;

}data[j] = tmp;

}//part 2

int range = n - bigk;

for(k = n-1; k > range -1; k--)if(tmp < data[i])

data[j] = data[i];

else break;

}data[j] = tmp;

}return data[range];

}//堆的方法雖然看起來複雜,卻絕對是高效的演算法

2樓:土風土味

一樓的太複雜了

建立迴圈(一個迴圈是所以數字個數):從第一個數字a開始,和下面每一個數比較,並建立一個識別變數i=0,當有一個數字大於a時i=i+1,當次迴圈結束時如果i=n-1,這時就求出了這個數跳出迴圈。剩餘的數不需要識別了。

dim a(100) &&假設陣列a(100)中包含100個數int n &&要求的位數

int j,k &&外部迴圈與內部迴圈的兩上遞進變數int i &&識別變數

for j=1 to 100 step 1i=0for k=j+1 to 100 step 1if a(k)>a(j)

i=i+1

endif

endfor

if i=n-1

exit

endif

endfor

? a(j) &&要求的數

vfp語法

3樓:匿名使用者

#include

#include

void main()

;int flags=intarray[0];

for(int i=1; i<=sizeof(intarray)/4;i++)

}printf("%d",maxint);

getchar();

return;

}c演算法

求滿足一下條件的演算法,時間複雜度為o(n)

4樓:滿天點點沃

對著自己的資料型別bai做相應地修改:

void delete(seqlist l, datatype x)l->length = i;

}void delete_list(linklist head, datatype x)

p = q->next;}}

如何對n個整數數進行排序,要求時間複雜度o(n),空間複雜度o(1)

5樓:等你愛我

題目:如何對n個不重複出現的整數序列進行排序,已知這些數的範圍為(0-65535),要求時間複雜度o(n),空間複雜度o(1)分析:可以申請一個大小為65536的陣列a,陣列的x下標代表數字x,a[x]代表x 在整數序列中出現的次數。

掃描一遍整數序列就可以完成對該整數序列的排序,時間複雜度為o(n)應為已知範圍,申請大小為65536的陣列,大小為常量,所以空間複雜度為o(1)**:

6樓:迮蕊釗德潤

可以申請一個大小為65536的陣列a,陣列的x下標代表數字x,a[x]代表x

在整數序列中出現的次數。掃描一遍整數序列就可以完成對該整數序列的排序,時間複雜度為o(n)

設計一個時間複雜度為o(n)的演算法,實現將陣列a[n]中所有元素迴圈左移k個位置要演算法和**

7樓:不傻不笨不弱智

#include

#include

int main()

for(i=0; i

s[i]=0;

puts(s);}

21這個數列的第n項如何求,1 3 6 10 15 21這個數列的第n項如何求?

累加法求通項 a n 1 an n 1 an a n 1 n a2 a1 2所有式子左右相加就可以得到通項了 an n 2 n 2 我們把n 2放在一起求 n放在一邊求sn 1 2 2 2 n 2 1 2 3 n 2餘下的知道做了 1 2 2 2 n 2 這個書上有公式的1 2 3 n 這個是等差數...

電路中如何數支路的個數,求電路中的結點數和支路數?是如何判斷的,求教。

網孔 將電路畫在平面上內部不含有支路的迴路,稱為網孔。也就是說,網孔內不含有元件。節點 有兩個以上的元件首尾相連的節點。迴路 有支路組成的閉合路徑。節點法是最基本的電路分析法之一,另一個是網孔分析,一般的電路書籍都會講到 初中電路為什麼沒講到我就不知道了 應該將這是一個最基本方法,不是技巧。可以很方...

數的6 8倍比這個數多0 58求這個數

列等量關係,就是要用方程做。一般情況下按已知條件將未知數代入即可得到等量關係。解 設這個數為x,6.8x x 0.58 5.8x 0.58 x 0.1 答 這個數是0.1。解 設這個數為x,由題意而例方程如下 6.8x x 0.58 5.8x 0.58 x 0.58 5.8 0.1 答 這個數是0....