線性表(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 不考慮時間和空間複雜度 則每次找到乙個正數,取出...