C++插入排序

文章目录

  • 前言
  • 一、插入排序的基础知识点
    • 1.插入排序的排序原理
    • 2.插入排序的所属类别
    • 3.插入排序的算法复杂度
  • 二、插入排序动态图
  • 三、代码
  • 总结


前言

今天来和大家分享插入排序。


一、插入排序的基础知识点

1.插入排序的排序原理

用未排序序列中的首个元素a,与已排序元素b从后向前逐个对比,若a>b则a插入b的后一位,若a

2.插入排序的所属类别

插入排序属于“比较类排序

3.插入排序的算法复杂度

最坏的情况为与所求序列相反的序列,所以需要依次操作 1、2、3…(n-1)次,由公式得,共为n(n-1)/2次。
所以时间复杂度为O(n²)。

二、插入排序动态图

C++插入排序_第1张图片
图来自 https://visualgo.net/zh/sorting?slide=10-2,侵删。

三、代码

代码如下:

void calculate()
{
     
	int n, count, i, min, x, temp;
	cin >> n;    //定义n个数
	int a[999];    //数组里存放n个数
	for(count = 1; count <= n; count++)
	{
     
		cin >> a[count];    //输入已知序列 a[1]-a[n]
	}
	
	for(count = 2; count <= n; count++)    //以此提取 a[2]到a[n] 
	{
     
		x = a[count];    //先得到a[count]也就是提取出来的那个数 
		for(i = count-1; i >= 1 ; i--)    //遍历提取的数之前的每个数 到a[1]
		{
     

		    if(x < a[i])    //若之前的数比提取出来的数大 
	    	{
     
			    a[i+1] = a[i];    //向后移动一位
				a[i] = x;    
		    }

		}
	}
	
	for(count = 1;  count <= n; count++)
	cout << a[count] << " ";
} 

总结

以上就是今天要和大家分享的内容,本文仅仅简单介绍了插入排序的使用。笔者不才,若有错误,愿大家提出,笔者定及时纠正。愿与大家同学习,共进步!

你可能感兴趣的:(排序,算法,排序算法,插入排序,c语言,c++)