檔案系統中查詢,空閒inode時候需要用到
乙個每個檔案系統都有自己的實現(如minix),現在kernel中統一呼叫這個:
static inline unsigned long find_first_zero_bit_le(const void *addr,
unsigned long size)
找到最近的乙個還有有效bit的字:
unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
if (!size)
return result;
tmp = (*p) | (~0ul << size);
if (tmp == ~0ul) /* are any bits zero? */
return result + size; /* nope. */
found:
return result + ffz(tmp);
}
在乙個字裡面找有效bit的位置,這個方法kernel中有很多實現,其中大部分是
直接用彙編實現的(當然也大部分看不懂),其中有個c語言實現很有意思(乙個字裡面還用上了二分差查詢)
/**
* __ffs - find first bit in word.
* @word: the word to search
* * undefined if no bit exists, so code should check against 0 first.
*/static __always_inline unsigned long __ffs(unsigned long word)
#endif
if ((word & 0xffff) == 0)
if ((word & 0xff) == 0)
if ((word & 0xf) == 0)
if ((word & 0x3) == 0)
if ((word & 0x1) == 0)
num += 1;
return num;
}
找到第乙個丟失的正數
given an unsorted integer array,find the first missing positive integer.for example,given 1,2,0 return3,and 3,4,1,1 return2.此題關鍵在於理解first missing posi...
在乙個有序數列中找到第乙個比x大的數的位置
print res res,第乙個比 s大的數為 x,l res a 3,6,7,7,9,10,13 binary search a,0 binary search a,2 binary search a,3 binary search a,6 binary search a,7 binary se...
在乙個字串中找到第乙個只出現一次的字元
在乙個字串中找到第乙個只出現一次的字元 題目 在乙個字串中找到第乙個只出現一次的字元。如輸入abaccdeff,則輸出b。我的思路是 如果要知道乙個字元是否只出現過一次,必須遍歷一次字串 知道所有字元出現過的情況,從前從後都可以。但在遍歷中要用陣列統計每個字元的出現次數,到最後將,再遍歷一遍陣列,得...