原创 字符串翻轉(reverse)及相關擴展(數組元素交換重組等)

1、基本問題:字符串翻轉(strReverse),就是將一個字符串倒轉,如abcdef 翻轉後是fedcba    其基本思路就是:將字符串中下標爲(i)的元素與下標爲 (n-i-1) 的元素交換:時間複雜度爲  O(n),空間複雜度爲O

原创 C++類大小確定,構造、析構、靜態、動態綁定(分析一道Oracle面試題)

 題目給出一段C++代碼,要求寫出運行結果,代碼如下,大家可以自己先試一下: #include <iostream> using namespace std; class A{ public: A(){ cout<<"A::A()"

原创 拆分,組合謎題 -【分割手鍊問題】【分割砝碼問題】

1、分割秤砣問題 一個40g的砝碼被分成4塊,這4塊恰好可以稱出1-40g之間所有重量(整數)。求這4塊分別多重. 答案:1,3,9,27;這正好組成了三進制數的基,正好有三種狀態:每個砝碼:放左盤,放右盤,不放。所以用它們組合能表示出1

原创 求最小的K個數 O(N) 一種實現-基於堆排序

題目要求:給出一組數(有n個),求出前k個最小的數: 形式化描述如下: 給出一組數:c1,c2,...,Cn的無序排列A,設c1<c2<...<Cn,要求輸出c1,c2,...,ck。 算法思想:用給定排列的前k個數建最大堆,對於後面的n

原创 擴展堆棧(stack) O(1) 時間訪問棧中最小值(或最大值)

問題描述:擴展stack的實現,完成正常的push,pop操作,新增訪問最小(或最大)元素的接口Min(),使得push,pop,Min的時間複雜度都是O(1)。 問題分析:拿到這道題,我們最先的思考往往是,設計一個算法從棧中拿到最小值,

原创 二分查找 (請大家給看看,歡迎提bug,請不吝賜教)

今天在讀Jon Bentley的Programming Pearls,看到二分查找處,據說Jon當年做了測驗90%的學生都給寫錯了, 我就順手也寫了個試試,Jon的學生都是世界Top系列名校的學生,所以我懷疑我的程序中也存在我沒測試出來的

原创 C語言中的跳轉goto&&setjmp&&longjmp sigsetjmp siglongjmp

1、goto語句,函數內部的短轉移     goto語句只能跳轉的到本函數內部的標籤處,這個沒得說,例子如下:     #include <stdio.h> int main() { int i=0; l

原创 shell中數組的使用

#!/bin/sh #數組的創建 array=(jim lilei richard mack mike) arrayB=("happy lee"  "pig wang"  "peter zn"  "jack zhang"  "jim

原创 關於轉圈打印數字,輸入指定行和列和起始值,自動完成打印

要求按照如下格式循環轉圈打印數字:   1     2     3   4   514 15   16  17  613  20  19  18  712  11  10   9   8 受Jon Bentley(Programming