資料結構與演算法——概述

cool_cool_coo1發表於2019-02-02

概述

一、資料結構概述:

1.什麼是資料結構:

資料結構是指由相互之間存在著一種或多種關係的資料元素的集合該集合中資料元素之間的關係組成。

2.資料的儲存結構:

  • 順序儲存:順序儲存結構:是把資料元素存放在地址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的。陣列就是順序儲存結構的典型代表。

  • 鏈式儲存:鏈式儲存結構:是把資料元素存放在記憶體中的任意儲存單元裡,也就是可以把資料存放在記憶體的各個位置。這些資料在記憶體中的地址可以是連續的,也可以是不連續的

兩者之間的區別:

比如看成在食堂打飯

3.資料的邏輯結構:

  • 集合結構:集合結構中的資料元素同屬於一個集合,他們之間是並列的關係,除此之外沒有其他關係。

  • 線性結構:線性結構中的元素存在一對一的相互關係。資料和資料之間是有關係的。

  • 樹形結構:樹形結構中的元素存在一對多的相互關係。

  • 圖形結構:圖形結構中的元素存在多對多的相互關係。

 二、演算法的概述

1.演算法的定義:

用來解決問題的思路

是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制

2.演算法的特性:

  1. 輸入
  2. 輸出
  3. 有窮性:有限的步驟裡,可以執行出結果,不能無限的執行。
  4. 確定性:有一個輸入只有一個確定的結果,不能一次結果1,一次結果2。
  5. 可行性:能夠解決實際問題。

3.演算法的基本要求:

  1. 正確性
  2. 可讀性
  3. 健壯性
  4. 時間複雜度:演算法佔用的時間,運算速度。
  5. 空間複雜度:演算法在執行時候佔用的記憶體,佔用的資源。

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);
	}

}

 

 

 

 

 

 

 

 

 

 

 

相關文章