摘要:
1.歸并算法思想: 歸并排序(MERGE-SORT)是利用歸并的思想實現的排序方法,該算法采用經典的分治(divide-and-conquer)策略(分治法將問題分(divide)成一些小的問題然后遞歸求解,而治(conquer)的階段則將分的階段得到的各答案"修補"在一起,即分而治之)。 歸并排序
閱讀全文
摘要:
1.快速排序定義: 快排的主要思想:分治+迭代,只需要三步: 在數列之中,選擇一個元素作為”基準”(pivot),或者叫比較值。 數列中所有元素都和這個基準值進行比較,如果比基準值小就移到基準值的左邊,如果比基準值大就移到基準值的右邊 以基準值左右兩邊的子列作為新數列,不斷重復第一步和第二步,直到所
閱讀全文
摘要:
參考博文: https://blog.csdn.net/beidaol/article/details/89135277 1)進程,線程的概念 2)線程安全 當多個線程訪問某個方法時,不管你通過怎樣的調用方式、或者說這些線程如何交替地執行,我們在主程序中不需要去做任何的同步,這個類的結果行為都是我們
閱讀全文
摘要:
整理自B站真情的可貴課程內容~ 1.希爾排序定義: 是直接插入排序的一種更高效的改進版本。希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序算法;隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至1時,整個文件恰被分為一組,算法便終止。希爾排序又稱“縮小增量排序”,即每趟只對相同增量距
閱讀全文
摘要:
插入排序 1.時間復雜度: 最優時間復雜度:O(n) 最壞時間復雜度:O(n2) 2.穩定性:穩定 3.插入排序舉例:alist = [93, 54,77,31,44,55,226] j = 1,i = 1開始當i = 1時,判斷54和93的大小關系(即 i=1 和 i= 0 位置的大小關系),此時
閱讀全文
摘要:
選擇排序 概念: 將原始的列表分為兩組:一組認為是排序好的(默認升序),另一組認為是未排序,重點是放在未排序部分; 第一輪:默認位置0上的元素是最小的,然后對比其他位置元素將位置0上的元素與真正最小元素進行調換; 第二輪:默認位置1上的元素是最小的,然后對比其他位置元素將位置1上的元素與真正次二小元
閱讀全文
摘要:
冒泡排序:最簡單的排序算法 時間復雜度: 最優時間復雜度O(N),表示遍歷一次沒有發現任何可以交換的元素,排序結束 最差時間復雜度O(N2) 穩定性:穩定 Python代碼: 1 #bubble_sort:冒泡排序 2 3 def bubble_sort(alist): 4 """冒泡排序""" 5
閱讀全文
摘要:
__init__與self的解釋 相信很多小伙伴最初接觸到類的時候,都遇到過這類困擾,為什么每個都需要self一下,今天我來說道說道 self:Python中的self是個對象(object),是當前類的實例 話不多說,直接上例子 1 class Dog(object): 2 #初始化實例 3 de
閱讀全文
摘要:
if __name__ == "__main__"解釋 分兩種情況: 1).當.py文件被直接運行時,if __name__ == "__main__" 之下的代碼將被運行,此時該文件中有沒有這行代碼沒有明顯區別 2).當.py文件以模塊形式被導入時,if __name__ == "__main__
閱讀全文
摘要:
Day25:九九乘法表 #按照給定格式輸出 #代碼中"\t"表示制表符,統一格式間距 #"\n"表示換行符,按照不同的i 進行換行 1 for i in range(1,10): 2 for j in range(1,i+ 1): 3 s = i * j 4 print("{} * {} = {}"
閱讀全文