一道不知出處的簡單演算法題解答

2021-09-27 09:41:10 字數 642 閱讀 9360

線性表(a1,a2,…,an)中的元素遞增有序且按順序儲存與陣列計算機的陣列a內,要求涉及演算法用函式實現下列功能:

用最少的時間在表中查詢值為x的元素;

如找到則將其與直接後繼元素交換;

如找不到則將其插入線性表使表中元素仍然遞增有序。

這是一道不知道**的演算法題。查詢演算法應該採用二分查詢法。

#include

#include

voidf(

int a,

int x,

int n)

//x為最後乙個元素,沒有直接後繼

a[mid]

= a[mid +1]

; a[mid +1]

= x;

return;}

else

if(a[mid]

< x)

low = mid +1;

else high = mid -1;

}int i = n -1;

while

(a[i]

> x)

a[i +1]

= x;

return

;}

這個**有一定的問題,但是大體能符合要求。在測試時會有一點麻煩。

一道簡單的演算法題

題目 統計給定數字中,值為1的二進位制位的數量。如果是陣列呢?int getbitcount unsigned int num return count 第一種想法比較簡單,從最後一位開始,比較是否為1,如果為1,就計數器加一。迴圈次數固定,32次。但是這種方法有乙個地方需要注意,那就形參必須為un...

一道演算法題解法,笑出聲

今天在牛客上刷了一道題,題目是這樣的 求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數...

解一道簡單的演算法題

原題是這樣的 乙個未排序整數陣列,有正負數,重新排列使負數排在正數前面,並且要求不改變原來的正負數之間相對順序。比如 input 1,7,5,9,12,15 ans 5,12,1,7,9,15 且要求時間複雜度o n 空間o 1 我實現的解法 解法1 不考慮時間和空間複雜度 則每次找到乙個正數,取出...