資料結構與演算法——概述
概述
一、資料結構概述:
1.什麼是資料結構:
資料結構是指由相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成。
2.資料的儲存結構:
- 順序儲存:順序儲存結構:是把資料元素存放在地址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的。陣列就是順序儲存結構的典型代表。
- 鏈式儲存:鏈式儲存結構:是把資料元素存放在記憶體中的任意儲存單元裡,也就是可以把資料存放在記憶體的各個位置。這些資料在記憶體中的地址可以是連續的,也可以是不連續的。
兩者之間的區別:
比如看成在食堂打飯
3.資料的邏輯結構:
- 集合結構:集合結構中的資料元素同屬於一個集合,他們之間是並列的關係,除此之外沒有其他關係。
- 線性結構:線性結構中的元素存在一對一的相互關係。資料和資料之間是有關係的。
- 樹形結構:樹形結構中的元素存在一對多的相互關係。
- 圖形結構:圖形結構中的元素存在多對多的相互關係。
二、演算法的概述
1.演算法的定義:
用來解決問題的思路
是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。
2.演算法的特性:
- 輸入
- 輸出
- 有窮性:有限的步驟裡,可以執行出結果,不能無限的執行。
- 確定性:有一個輸入只有一個確定的結果,不能一次結果1,一次結果2。
- 可行性:能夠解決實際問題。
3.演算法的基本要求:
- 正確性
- 可讀性
- 健壯性
- 時間複雜度:演算法佔用的時間,運算速度。
- 空間複雜度:演算法在執行時候佔用的記憶體,佔用的資源。
4.demo
從1加到100:沒有最好的演算法,只有最合適的。
package dataStruct;
public class AddOneToHandred {
public static void main(String[] args) {
int total=0;
int end=100;
//使用FOR迴圈
for(int i=1;i<=100;i++) {
total+=i;
}
//直接計算
total=(1+end)*(end/2);
System.out.println(total);
}
}
相關文章
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 資料結構小白系列之資料結構概述資料結構
- 資料結構與演算法資料結構演算法
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- 資料結構與演算法:圖形結構資料結構演算法
- 資料結構筆記——概述資料結構筆記
- 【JavaScript 演算法與資料結構】JavaScript演算法資料結構
- 資料結構與演算法03資料結構演算法
- 演算法與資料結構——序演算法資料結構
- 資料結構與演算法-堆資料結構演算法
- 資料結構與演算法02資料結構演算法
- 資料結構與演算法(1)資料結構演算法
- 資料結構與演算法——排序資料結構演算法排序
- 資料結構與演算法——字串資料結構演算法字串
- 資料結構與演算法(java)資料結構演算法Java
- 資料結構與演算法 - 串資料結構演算法
- 【資料結構與演算法】bitmap資料結構演算法
- 資料結構與演算法之線性結構資料結構演算法
- 資料結構與演算法-連結串列資料結構演算法
- python演算法與資料結構-什麼是資料結構Python演算法資料結構
- Redis概述及基本資料結構Redis資料結構
- [資料結構與演算法] 排序演算法資料結構演算法排序
- python演算法與資料結構-演算法和資料結構介紹(31)Python演算法資料結構
- 資料結構與演算法(八):排序資料結構演算法排序
- [資料結構與演算法] 邂逅棧資料結構演算法
- 資料結構與演算法分析——棧資料結構演算法
- JavaScript資料結構與演算法——集合JavaScript資料結構演算法
- 【資料結構與演算法】快速冪資料結構演算法
- 資料結構與演算法——堆排序資料結構演算法排序
- 【資料結構與演算法】堆排序資料結構演算法排序
- 資料結構與演算法——陣列資料結構演算法陣列
- 資料結構與演算法之美資料結構演算法
- javascript資料結構與演算法-棧JavaScript資料結構演算法
- 資料結構與演算法之排序資料結構演算法排序
- 演算法與資料結構之集合演算法資料結構
- 【資料結構與演算法】字串匹配資料結構演算法字串匹配
- 資料結構與演算法-佇列資料結構演算法佇列
- 資料結構與演算法----# 一、排序資料結構演算法排序