Coursera演算法第一周

2021-07-15 16:08:35 字數 853 閱讀 2852

現在是第三週,剛把第一周做完,要抓緊了。

首先是merge_sort演算法,採用二分然後遞迴的方法,將時間優化到o(nlog(n))

def sort_split(a,b):

l_a=len(a)

l_b=len(b)

l=l_a+l_b

l=i=0;j=0

for k in range(l):

if i!=l_a and (j==l_b or a[i]

name=raw_input('input text name:')

f=open(name+'.txt')

s=f.readlines()

for i in range(len(s)):

s[i]=int(s[i].strip())

def count_inverse(a):

l=len(a)

if l==1:

return a,0

else:

l1=a[:l/2]

l2=a[l/2:]

l1,c1=count_inverse(l1)

l2,c2=count_inverse(l2)

l,c3=count_split(l1,l2)

return l,c1+c2+c3

def count_split(a,b):

l_a=len(a)

l_b=len(b)

l=l_a+l_b

i=0;j=0

l=count=0

for k in range(l):

if i!=l_a and (j==l_b or a[i]

總結一周:時間的優化,分冶思想,merge_sort演算法。

演算法,第一周

題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...

演算法訓練第一周

leetcode 283 移動零 基礎寫法 class solution 設定指標i j 遍歷nums i 當nums i 0 即當值不為0時 nums j nums i j int j 0 for int i 0 i i 可以使i j指標同時向右移 只有當nums i 0 j才移動 造成j指標是慢...

第一周演算法複習

第一周演算法複習 2021 11 08 2021 11 14 雖然在c 中有內建的sort函式幫助我們進行時間複雜度為nlogn的快速排序,不過快排的思想和雙指標演算法還是很值得我們學習的 快排的思想 很顯然,快排的關鍵就在於我們怎麼以分界點為界,移動值到分界點的兩邊。開另外兩個陣列a,b,把所有小...