21xrx.com
2024-12-22 23:16:25 Sunday
登录
文章检索 我的文章 写文章
C++插入排序
2023-07-05 04:04:34 深夜i     --     --
C++ 插入排序 排序算法

C++中的插入排序是一种简单有效的排序算法。插入排序的基本思想是将待排序的一组数据分为已排序和未排序两个部分。首先将第一个元素作为已排序部分,然后依次将后面的元素插入到已排序部分中,直至所有元素都被插入完成。

下面是C++中插入排序的代码实现:


void insertionSort(int arr[], int size) {

  int i, j, temp;

  for(i = 1; i < size; i++) {

    j = i;

    while(j > 0 && arr[j - 1] > arr[j]) {

      temp = arr[j];

      arr[j] = arr[j - 1];

      arr[j - 1] = temp;

      j--;

    }

  }

}

在这个实现中,我们使用了三个变量i、j和temp。变量i用来指向未排序部分的第一个元素,变量j用来指向已排序部分的最后一个元素,变量temp用来临时保存需要交换的元素。

在主循环中,我们首先将变量i初始化为1,表示从第二个元素开始依次进行排序。然后,我们将变量j初始化为i,表示将未排序的第一个元素插入到已排序部分的最后一个元素后面,也就是已排序部分的末尾。

在内层循环中,我们比较已排序部分的每一个元素和当前未排序的元素的大小关系。如果已排序部分中的某个元素比当前未排序元素要大,那么我们需要将这个已排序的元素向右移动一位,以腾出位置给当前未排序元素插入。我们继续向前比较,直到找到了合适的插入位置。

最后,我们将未排序的元素插入到已排序部分中,然后将i指向下一个需要排序的元素,重复上述过程,直至所有元素都被插入完成,排序结束。

总之,C++中的插入排序是一种简单有效的排序算法,利用分治策略,将整个排序问题划分为若干个子问题,然后逐个处理每个子问题,最终合并得到有序的整个序列。如果你正学习C++编程,并且需要进行一些排序操作,那么不妨尝试一下插入排序,相信你一定会喜欢上它的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复