400字范文,内容丰富有趣,生活中的好帮手!
400字范文 > 常用算法简述 -- 插入排序

常用算法简述 -- 插入排序

时间:2020-09-01 06:34:54

相关推荐

常用算法简述 -- 插入排序

一、插入排序的原理

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素腾出空间。

下面是插入排序的示例动画:

二、C++代码实现

// 功能:实现对int数组按升序排序// 参数:// data: int数组//n: 数组元素的个数// 返回值:// 无//void InsertionSort(int data[], int n) {for (int i = 1; i < n; i++) { // 假定第一个元素为已排序序列,所以下标从1开始int temp = data[i];int j = i; // j表示腾出的位置// 因为依次和前一个元素比较,所以是j > 0,而不是j >= 0。// 从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素腾出位置for (; j > 0; j--) { if (data[j - 1] > temp) {data[j] = data[j - 1];}else {break;}}if(j != i)data[j] = temp;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。