C++插入排序怎么实现

2023-04-24 00:33:00 排序 插入

C++插入排序是一种比较简单的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。

C++插入排序的实现步骤如下:

1、首先设置一个标志变量j,将要插入的数据元素赋值给j。

2、从有序表中比较元素,如果j小于有序表中的元素,则将有序表中的元素向后移动,直到找到j应该插入的位置。

3、将j插入到有序表中,插入完成后,有序表中新增一个元素。

4、重复步骤1-3,直到所有元素都插入到有序表中,排序完成。

C++插入排序的实现代码如下:

void InsertSort(int a[], int n)
{
    int i, j;
    for(i=1; i0 && a[j-1]>temp; j--)
            a[j] = a[j-1];
        a[j] = temp;
    }
}

上面的代码中,首先外层循环从第二个元素开始,将每一个元素赋值给变量temp,内层循环从temp的右边开始,将大于temp的元素向后移动,直到找到temp应该插入的位置,将temp插入到有序表中,完成一次插入排序,外层循环继续,直到所有元素都插入到有序表中,排序完成。

C++插入排序的时间复杂度为O(n^2),空间复杂度为O(1),当记录较少时,插入排序效率比较高。但它的缺点是比较慢,而且当记录数较多时,性能会变得很差。

相关文章