week3 快速排序

2021-07-09 23:48:02 字數 2008 閱讀 2982

本文是博主在coursera學習時所寫的學習筆記,如有錯誤疏漏還望各位指正。

歡迎交流討論

打亂陣列

若滿足下面兩個條件,則將陣列從下標為j的地方分為兩部分

對第二步得到的兩個陣列驚醒遞迴排序

現在輸入乙個陣列

//私有方法,通過遞迴對a[lo]~a[hi]進行拍戲

private

static

void

sort(comparable a, int lo, int hi)

//分割陣列

private

static

intpartition(comparable a, int lo, int hi)

while (less(a[lo], a[--j]))

if (i >= j)

break;

swap(a, i, j);

}swap(a, lo, j);

return j;

}private

static

boolean

less(comparable a, comparable b)

private

static

void

swap(comparable a, int i, int j)

}比較次數

快速排序是不穩定的排序演算法

int j = partition(a, lo, hi);

sort(a, lo, j-1);

sort(a, j+1, hi);

}

cn

=(n+

1)+(

c0+c

n−1n

)+(c

1+cn

−2n)

+...

++(c

n−1+

c0n)

最前面的n+1是分割陣列所需要的複雜度,後面的ci

+cn−

in,其中ci

,cn−

i 分別對應著劃分後的左側陣列和右側陣列,1n

是指這種分割的概率。

兩邊同時乘以n

ncn=

n(n+

1)+2

(c0+

c1+.

..+c

n−1)

將n = n-1帶入上式,將得到的結果兩側分別相減nc

n−(n

−1)c

n−1=

2n+2

cn−1

移項後兩邊除以n(

n+1)

cnn+1=

cn−1

n+2n

+1右側展開 cn

n+1=

cn−1

n+2n

+1=c

n−2n

−1+2

n+2n

+1=c

n−3n

−1+2

n−12

n+2n

+1=2

3+24

+25+

...+

2n+1

兩邊乘以n+

1 ,提取公因式 cn

=2(n

+1)(

13+1

4+15

+...

+1n+

1)≈2

(n+1

)∫n+

131x

dx最終結果: cn

=2(n

+1)l

nn≈1.39nl

gn

Week3 程式設計作業

公式 g 1.1 exp z 要注意是.因為引數是矩陣時要對每個元素求其sigmoid 發現自從把第一章的向量化想出來 後來就沒那麼難了 grad 1 m x h y h x 0.5時,y 1 h x 0.5時,y 0 要注意,不要正則化引數0,就是最後一項,是 theta 2 n,1 theta ...

個人作業 Week3

個人作業 week3 同學們在上這門課的時候,還是大三,你的困難和迷茫,別人一定有過。請看看別人怎麼學習的,有些是科班,有些是野路子,有些成功,有些失敗。請讀完下面所有部落格 也可以再讀一些你覺得有意思的部落格 談談自己的感想,你現在的條件比他們如何?你對計算機的熱愛僅僅是口頭的麼?it專業的技術道...

c 程式設計 week3 作業

類與物件 程式設計題 4 魔獸世界之一 備戰 注意 總時間限制 1000ms 記憶體限制 65536kb 魔獸世界的西面是紅魔軍的司令部,東面是藍魔軍的司令部。兩個司令部之間是依次排列的若干城市。紅司令部,city 1,city 2,city n,藍司令部 兩軍的司令部都會製造武士。武士一共有 dr...