设为首页 加入收藏

TOP

算法----插入排序(insert sort)
2015-02-02 14:43:26 来源: 作者: 【 】 浏览:23
Tags:算法 ---- 插入 排序 insert sort

插入排序就是每次选取一个元素插入到已经排序的子数组中,如此循环,直到所有的元素都完成排序。


算法实现:


void sort::insert_sort(int* a, const int n)
{
?for(int i=1; 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之间。当数组规模较小或者存在多个局部有序的子数组时,算法的执行速度会更快。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇算法---归并排序(Merge Sort)---.. 下一篇算法----希尔排序(shell sort)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: