排序:
氣泡排序:每次比較相鄰兩個元素大小,交換,直到末尾,迴圈執行;穩定
選擇排序:每次從待排序列中找出最大(最小)元素放在起始位置,迴圈執行;穩定
插入排序:不斷將新元素插入到前面已排好序的序列中;穩定,比冒泡和選擇更快;適於基本有序集合
希爾排序:插入排序的改進,將資料按步長分組,每組進行插入排序,不斷縮減步長;不穩定;不適於鏈式儲存結構
折半插入排序:插入排序的改進,插入已排好續陣列中時採用二分查詢;穩定,比直接插入更快
堆排序:若公升序,則構造大頂堆,然後交換元素,迴圈執行;不穩定
快速排序:選擇乙個初始數,兩個指標從收尾分別出發,找到大於(小於)初始數時做交換,迴圈執行;不穩定
深度優先排序:對每乙個分支深入到不能深入為止,且每個結點只訪問一次
廣度優先排序:
查詢:二分查詢:資料已排好序,儲存空間連續,不能頻繁插入刪除元素(o(logn))
二叉搜尋樹:需要經常插入刪除元素(o(h))(h為樹高)
雜湊:資料在存放和查詢時都經過雜湊函式處理得到定位(o(n))
演算法基本概念
所謂演算法,就是解決問題的一種方法或乙個過程。具體來講,演算法是由若干指令組成的有窮序列。演算法概念並不是計算機學科獨有的概念,生活到到處可見演算法的應用。演算法要滿足4條性質 1.輸入 2.輸出 3.確定性 4.有限性 複雜性 時間複雜度 t 演算法所求解問題規模n的 函式 漸進時間複雜度 o 當...
演算法基本概念
一什麼是演算法 解決問題的策略機制,重要的是思想 求滿足a b c 1000,a 2 b 2 c 2 條件的所有a,b,c 思路 列舉法,以下被注釋掉的語句就是列舉每個滿足條件的a,b,c 但是這段語句的演算法複雜度太大 改進 a,b的值就確定了c的值,故 改進演算法如下 import time s...
演算法基本概念
演算法 algorithm 評價演算法優劣的依據 複雜度 時間複雜度和空間複雜度 時間複雜度 time complexity eg.某兩個演算法的時間頻度是t n 100000n2 10n 6100000n 2 10n 6 100000 n2 1 0n 6 t n n2 t n n 2 t n n ...