插入排序:每次從輸入資料中移除乙個元素並將其插入已排序序列的正確位置,直到所有輸入元素都插入有序序列中。插入排序適用於資料幾乎都已經排序或者輸入資料規模較小時可以使用插入排序。
什麼意思呢?舉個例子:
例如:給定乙個序列:6 8 1 4 5 3 7 2
可以看出插入排序是從後面的序列中取出乙個數然後插入前面已排好的序列中。插入排序是穩定的,時間複雜度為o(
n^2)
下面附上核心**:
public class insertsort
return c;
}
可以這麼理解,插入排序是從正向有序的,而氣泡排序是從逆向有序的,氣泡排序是每次最後的乙個值都為最大。
如有理解錯誤,歡迎指正。
氣泡排序和插入排序區別
氣泡排序 原理 相鄰兩個元素之間的比較。例如將一陣列按從小到大的排列 第一輪兩個元素比較,將陣列中最大的元素放到陣列的最末尾 第二輪兩個元素比較,將陣列中次大的元素放到陣列的倒數第二位,此時不用和最後乙個元素比較了 第三輪兩個元素比較,將第三大的元素放在陣列的倒數第三位的位置上,此時也不用比較和倒數...
選擇排序,插入排序,氣泡排序的區別
首先要了解這三個排序的定義 1.選擇排序 它的工作原理是每一次從待排序的 資料元素 中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。public void choisesort int arrys,int n int min min arrys i arrys i...
氣泡排序,插入排序
前提 void x sort elementtype a,int n 大多數情況下,為簡單起見,討論從小大的整數排序 n是正整數 只討論基於比較的排序 有定義 只討論內部排序 穩定性 任意兩個相等的資料,排序前後的相對位置不發生改變 沒有一種排序是任何情況下 都表現最好的 氣泡排序 void bub...