插入排序:把n個待排序的元素看成為乙個有序表和乙個無序表。開始時有序表中只包含1個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第乙個元素,將它插入到有序表中的適當位置,使之成為新的有序表,重複n-1次可完成排序過程。
例如;
給定乙個陣列 3,1,4,2,5
第一趟3,1,4,2,5
第二趟1,3,4,2,5
第三趟1,3,4,2,5
第四趟1,2,3,4,5
第五趟1,2,3,4,5
**實現:每次用temp儲存當前元素值,與排好序的陣列最後一位開始比較,依次往前,比它大的向後移動,找到第乙個比它小的位置,插入即可。
時間複雜度 o(n^2) 空間複雜度 o(1) 具有穩定性
public static > void insertsort(t arr)
int j = 0;
for (int i=1;i=0;j--)else
}arr[j+1] = temp;
}
排序演算法(三)插入排序
今天來更新排序演算法中的第三種演算法 插入排序插入排序是基於比較的排序。所謂的基於比較,就是通過比較陣列中的元素,看誰大誰小,根據結果來調整元素的位置 因此,對於這類排序,就有兩種基本的操作 比較操作 交換操作其中,對於交換操作,可以優化成移動操作,即不直接進行兩個元素的交換,還是用乙個樞軸元素 t...
排序演算法(三) 插入排序
一 直接插入排序 最差時間複雜度 o n 2 最優時間複雜度 o n 平均時間複雜度 o n 2 穩定性 穩定 直接插入排序 insertion sort 是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對未排序的資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序演算法的一般...
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...