1、穩定性
歸併排序、氣泡排序、插入排序。基數排序是穩定的
選擇排序、快速排序、希爾排序、堆排序是不穩定的
2、時間複雜度
最基礎的四個演算法:冒泡、選擇、插入、快排中,快排的時間複雜度最小o(n*log2n),其他都是o(n2)
3.排序演算法的思想:
(1)氣泡排序:
是相鄰元素之間的比較和交換,兩重迴圈o(n2);所以,如果兩個相鄰元素相等,是不會交換的。所以它是一種穩定的排序方法
public void popsort(int list)}}
}(2)選擇排序:
每個元素都與第乙個元素相比,產生交換,兩重迴圈o(n2);舉個栗子,5 8 5 2 9,第一遍之後,2會與5交換,那麼原序列中兩個5的順序就被破壞了。所以不是穩定的排序演算法
///
/// 選擇排序
///
public class selectionsorter
;private int min;
// private int m=0;
public void sort(int list)
int t = list[min];
list[min] = list[i];
list[i] = t;
// console.writeline("",list[i]);}}
}(3)插入排序:
插入排序是在乙個已經有序的小序列的基礎上,一次插入乙個元素。剛開始這個小序列只包含第乙個元素,事件複雜度o(n2)。比較是從這個小序列的末尾開始的。想要插入的元素和小序列的最大者開始比起,如果比它大則直接插在其後面,否則一直往前找它該插入的位置。如果遇見了乙個和插入元素相等的,則把插入元素放在這個相等元素的後面。所以相等元素間的順序沒有改變,是穩定的。
///
/// 插入排序
///
public class insertionsorter
list[j] = t;}}
}更多unity2018的功能介紹請到paws3d爪爪學院查詢。鏈結也可以加入unity學習討論群935714213
近期更有資深開發人士直播分享unity開發經驗,詳情請進入官網或加入qq群了解
演算法和演算法複雜度
演算法 algorithm 是指解題方 而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果乙個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間 空...
常用演算法時間複雜度
常用排序演算法的時間複雜度與穩定性 演算法最好時間複雜度 平均時間複雜度 最壞時間複雜度 空間複雜度 穩定性複雜性 直接插入排序 o n o n2 o n2 o 1 是簡單 氣泡排序 o n o n2 o n2 o 1 是簡單 選擇排序 o n2 o n2 o n2 o 1 否簡單 希爾排序 o n...
演算法複雜度和排序演算法比較
演算法複雜度 時間複雜度 常見的時間複雜度有 常數階o 1 對數階o log2 n 線性階o n 線性對數階o nlog2 n 平方階o n 2 立方階o n 3 k次方階o n k 指數階o 2 n 隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。空間複雜度 如當乙個演算法...