學習筆記 資料結構與演算法 第一節 排序

2021-10-25 13:55:34 字數 2514 閱讀 8088

什麼是資料結構?

資料結構就是把資料元素按照一定的關係組織起來的集合,用來組織和儲存資料

資料結構的分類:

邏輯結構:

物理結構:

什麼是演算法?

根據一定的條件,對一些資料進行計算,得到需要的結果

優秀演算法的目標

演算法的時間複雜度分析

事後分析估算方法:如寫計算時間的**

事後分析估算方法:

因素:

最重要的是把核心操作的次數和輸入規模關聯起來

演算法時間複雜度

大o記法

如:常見的大o階

o(1)演算法的空間複雜度分析(略)

以占用記憶體為標準,這裡省略

氣泡排序

public

static

void

sort01

(int

arr)}}

print

(arr)

;}

時間複雜度:o(n^2)

選擇排序

public

static

void

sort02

(int

arr)}if

(min!=i)

}print

(arr)

;}

時間複雜度:o(n^2)

插入排序

public

static

void

sort03

(int

arr)

else}}

print

(arr)

;}

時間複雜度:o(n^2)

希爾排序

public

static

void

sort04

(int

arr)

while

(h>=1)

else}}

h=h/2;

}print

(arr)

;}

歸併排序
public

class

test

}private

static

void

mergesort

(int

arr,

int l,

int r)

int mid=

(l+r)

>>>1;

mergesort

(arr,l,mid)

;mergesort

(arr,mid+

1,r)

;merge

(arr,l,mid,r);}

private

static

void

merge

(int

arr,

int l,

int mid,

int r)

else

}while

(s1<=mid)

while

(s2<=r)

for(

int j=

0;j}

時間複雜度:o(nlogn)

快速排序

public

class

quick02

}private

static

void

partitionsort

(int

arr,

int left,

int right)

int partition=

partition

(arr,left,right)

;partitionsort

(arr,left,partition-1)

;partitionsort

(arr,partition+

1,right);}

private

static

intpartition

(int

arr,

int left,

int right)

}while

(arr[left]

>arr[

++s1])}

if(s1>=s2)

else

}int temp=arr[s2]

; arr[s2]

=arr[left]

; arr[left]

=temp;

return s2;

}}

時間複雜度:

最優:o(nlogn)

最差:o(n^2)

平均:o(nlogn)

陣列arr中由若干個元素,其中a元素和b元素相等且在它前面,如果使用了某種排序演算法後,a元素仍然在b元素前面,則說該演算法是穩定的

常見演算法的穩定性:

python學習 資料結構第一節

1.訪問元組或列表中的值 注 元素是從0開始從左往有編號的,或者從右向左編號 1開始 列表 x1 1,2,3,4 元組 x2 1,2,3,4 print x2 0 print x2 1 1.1切片 注 切片長度是右值 左值,不包括右值,切片也可以是負數形式 print x2 0 3 1.1.1列表,...

資料結構 第一節 框架總結

資料結構知識框架總結 1 資料儲存結構 順序儲存結構 用陣列實現 鏈式儲存結構 用節點實現 資料元素 指標 2 資料邏輯結構 線性表 順序儲存結構 順序表 鏈式儲存結構 單鏈表 迴圈單鏈表 雙向鍊錶 鍊錶 堆疊 後進先出 順序堆疊 鏈式堆疊 棧底 棧頂 入棧 出棧 應用 括號匹配問題 表示式計算問題...

pytorch 學習筆記第一節

import torch x data 1.0 2.0 3.0 y data 2.0 4.0 6.0 w torch.tensor 1.0 一定要加 否則則會輸出純0的矩陣,例如 寫w torch.tensor 3,5 則輸出三行五列的0tensor變數,加上括號才是 3.5.w.requires ...