栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

算法——插入排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

算法——插入排序

算法——插入排序

博主是一个大一刚刚放暑假的大学生,大学我们只学习了c语言,现在这么卷只学c语言肯定不够,所以博主打算从零开始恶补c++顺便写文章记录一下,另外博主这个暑假还想记录一些算法基础内容欢迎关注哦。这些是是一些算法的记录和整理总结笔记要是什么时候忘记了这个算法那个算法怎么做就重新来看看,在csdn上面发是为了利用网址来编写思维导图的话比较方便~~~如果大家想跟着我一起学习也可以关注我~或者给这个文章点赞~~~谢谢大家了~

这篇是插入排序的内容

打扑克 思想:

1.从第一个元素开始,该元素可以认为已经被排序
2.取下一个元素tem,从已排序的元素序列从后往前扫描
3.如果该元素大于tem,则将该元素移到下一位
4.重复步骤3,直到找到已排序元素中小于等于tem的元素
5.tem插入到该元素的后面,如果已排序所有元素都大于tem,则将tem插入到下标为0的位置
6.重复步骤2~5


代码:
#include
void swap_1 (int a,int b)
{
    int t=a;a=b;b=t;
}

void insertion_sort(int *a,int n)
{
    int i,j;
    int t=a[0];
    for (i=1;i
    for(j=i-1;j>=0;j--)
 {
    if(a[j]>a[j+1])
    {
        int t=a[j];a[j]=a[j+1];a[j+1]=t;
    }
 }
}

}
using namespace std;
int main()
{
    int n;
    cin>>n;
	int a[n];
    for (int i = 0;i < n;i++ )
	cin>>a[i];
	insertion_sort(a,n);
    for (int i = 0;i < n;i++ )
	cout< 

时间复杂度分析:

外层for循环表示通过n-1次

内层for循环表示遍历(n-1)!次也可能就看一遍不用排序了这个时候就是O(n)

所以复杂度为O(n)~O(n2)


空间复杂度分析

没有额外申请数组等只使用了一个t来进行交换

所以复杂度为O(1)


稳定性:稳定

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009558.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号