struct node
{int yearmonthday; };
typedef struct
{int num;//帳號
char name[];//姓名
struct node date;//開戶年月日
int tag;//儲蓄類型如 零存 一年定期……
float put;//存入累加數
float interest;//利息
float total;//帳面總數
}count
.()n ()n+ ()n ()(n+)(n)/ ()(n+)(n)/ ()n
這是一個遞歸調用因k的初值為由語句()知每次調用k增故第()語句執行n次()是FOR循環語句在滿足()的條件下執行該語句進入循環體()n次加上最後一次判斷出界故執行了n+次()也是循環語句當k=時判斷n+次(進入循環體()n次)k=時判斷n次最後一次k=n時判斷次故執行次數是(n+)+n+…+=(n+)(n)/次語句()是()的循環體每次比()少一次判斷故執行次數是n+(n)+…+=(n+)(n)/次注意分析時不要把()分析成n次更不是次
. (這時i= s=) REPEAT語句先執行循環體後判斷條件直到條件為真時退出循環
.算法在最好情況下即二進制數的最後一位為零時只作一次判斷未執行循環體賦值語句A[i]執行了一次最壞情況出現在二進制數各位均為(最高位為零因題目假設無溢出)這時循環體執行了n次時間復雜度是O(n)循環體平均執行n/次時間復雜度仍是O(n)
.該算法功能是將原單循環鏈表分解成兩個單循環鏈表其一包括結點h到結點g的前驅結點另一個包括結點g到結點h的前驅結點時間復雜度是O(n)
[] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/23258.html