什麼是資料結構?
資料結構就是把資料元素按照一定的關係組織起來的集合,用來組織和儲存資料
資料結構的分類:
邏輯結構:
物理結構:
什麼是演算法?
根據一定的條件,對一些資料進行計算,得到需要的結果
優秀演算法的目標
演算法的時間複雜度分析
事後分析估算方法:如寫計算時間的**
事後分析估算方法:
因素:
最重要的是把核心操作的次數和輸入規模關聯起來
演算法時間複雜度
大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 ...