是指解題方案準確而完整的描述,是一系列解決問題的清洗的指令, 演算法代表著用系統的方法描述解決問題的策略機制. 也就是說, 能夠對一定規範的輸入, 在有限時間內獲得所求的輸出.
程式=演算法+資料結構
演算法的可行性與空前複雜度, 時間複雜度
大資料下,犧牲精度換取速度.
是一種儲存和組織資料的方式, 意在便於訪問和修改
指標和鍊錶
佇列,堆疊,樹,雜湊表
將每個元素迴圈地與前面的元素相比較, 若小於前面的便交換.
偽**
時間複雜度為 o(
n2)
insert
a[j+1]
} a
}insert(c(3,2,1,4))
遞迴版(有錯誤未解決,返回不出排序後的陣列)
recursive_inertionsort
a}insert
a[j+1] = k
}recursive_inertionsort(c(2,3,4,1),1,4)
p問題的時間複雜度是多顯示時間的
np問題: 是能被乙個多項式時間演算法驗證的語言類
類p問題有一些可以快速解決的問題組成, 而類np則由一些可以快速驗證其解得問題組成.
線性規劃問題的單純型法和多項式時間複雜度的橢球法, 但線性規劃問題不是嚴格的np
bubble_sort
}} a
}> bubble_sort(c(2,3,4,1))
[1] 123
4
改進的冒泡
每次進入之前判斷內層排序是否swap過,即有未排序好的值。若內層都拍好序了就直接得到結果。
improved_bubble_sort
}} a
}
遞迴的冒泡
氣泡排序和插入排序哪個更快「呢?
一般的人回答:「差不多吧,因為漸近時間都是o(n^2)」。
但是事實上不是這樣的,插入排序的速度直接是逆序對的個數,而氣泡排序中執行「交換「的次數是逆序對的個數,因此氣泡排序執行的時間至少是逆序對的個數,因此插入排序的執行時間至少比氣泡排序快。
該方法的基本思想是:
1.先從數列中取出乙個數作為基準數。
2.分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。
3.再對左右區間重複第二步,直到各區間只有乙個數。
演算法0 介紹
由於要找工作,最近刷了點題,看了點書,做了些校招筆試,總結一些演算法筆試的要點吧。1.題目 筆試的時候,第一步還是要認真讀題,這個沒什麼好說的,題都不懂是做不下去的。2.解題思路 在讀完題目的時候,不要急著動手寫 這一步要做的是理清思路,可以借助畫圖等工具。這一步的最終目標是得到演算法流程圖。3.輸...
OpenGL教程 0 介紹
opengl介紹 opengl,全稱open graphics library,是乙個用c語言寫的圖形api。通俗地說,opengl用來繪製2d 3d圖形。目前opengl的運用十分廣泛,有許多用opengl編寫的優秀作品。opengl是乙個跨平台的圖形庫,也就是說它不僅可以在windows上使用,...
深度學習 0 介紹
人工智慧 讓機器具備人的思維和意識。人工智慧的三大學派 1.行為主義 基於控制論,構建感知 動作控制系統。2.符號主義 基於算術邏輯表示式,求解問題是先把問題描述為表示式,再求解。3.聯結主義 仿生學,模仿神經元連線關係。中心思想 當網路將大量簡單的計算單元連線在一起時,可以實現智慧型行為。機器學習...