演算法0介紹 排序

2021-07-04 08:55:44 字數 1736 閱讀 5508

是指解題方案準確而完整的描述,是一系列解決問題的清洗的指令, 演算法代表著用系統的方法描述解決問題的策略機制. 也就是說, 能夠對一定規範的輸入, 在有限時間內獲得所求的輸出.

程式=演算法+資料結構

演算法的可行性與空前複雜度, 時間複雜度

大資料下,犧牲精度換取速度.

是一種儲存和組織資料的方式, 意在便於訪問和修改

指標和鍊錶

佇列,堆疊,樹,雜湊表

將每個元素迴圈地與前面的元素相比較, 若小於前面的便交換.

偽**

時間複雜度為 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.聯結主義 仿生學,模仿神經元連線關係。中心思想 當網路將大量簡單的計算單元連線在一起時,可以實現智慧型行為。機器學習...