算法----插入排序(insert sort)
插入排序就是每次选取一个元素插入到已经排序的子数组中,如此循环,直到所有的元素都完成排序。
算法实现:
void sort::insert_sort(int* a, const int n)
{
for(int i=1; i<n; i++)
{
for(int j=i; j>0 && a[j] < a[j-1]; j--)
{
swap(a,j,j-1);
}
}
}
上述算法的时间复杂度为O(N^2)。但是插入排序的算法性能与待排序的数组有关,当数组已排序,则可在线性时间内完成,如果数组为逆序,则需要O(N^2)的时间才能完成排序。因此插入排序算法的时间复杂度在N~N^2之间。当数组规模较小或者存在多个局部有序的子数组时,算法的执行速度会更快。
相关推荐
Jasmineyaoyao 2020-06-16
Joymine 2020-06-16
清溪算法君老号 2020-06-06
清溪算法君老号 2020-06-01
blackeagleoht 2019-05-04
shenwenjie 2020-04-25
星辰大海的路上 2020-04-22
bluewelkin 2020-04-21
chenfei0 2020-04-15
hanyujianke 2020-03-03
Colourful 2020-02-29
dushine00 2020-02-17
Happyunlimited 2020-02-17
shawsun 2020-02-12
pimshell 2020-02-03
hugebawu 2020-01-15