排序算法:插入排序
来源:互联网 发布:怪物猎人ol mac能玩吗 编辑:程序博客网 时间:2024/06/16 09:39
简介
插入排序是一种较为简单的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
形象的可以理解为打扑克抓拍的过程,通常我们右手抓牌,没抓一张牌,就放到左手,抓下一张牌后,会把这张牌依次与左手上的牌比较,并把它插入到一个合适的位置(按牌面大小)。上述过程即插入排序过程。
算法描述
1.从第一个元素开始,该元素可以认为已经有序;
2.取下一个元素,在已经有序的序列中从后向前扫描;
3.如果该元素(已排序)大于新元素,将该元素移动到下一个位置;
4.重复步骤3,直到找到已排序的元素小于或等于新元素的位置;
5.将元素插入到该位置后;
6.重复2~5;
时间复杂度:O(N^2)
如图
代码实现
void InsertSort(int* arr,int len){ int i = 0; int j = 0; int key = 0; for (i = 1; i < len; ++i) { key = arr[i]; for (j = i - 1; j >= 0; --j) { if (key < arr[j]) arr[j+1] = arr[j]; else break; } arr[j+1] = key; }}int main(){ int a[] = {1,8,3,6,5}; InsertSort(a, sizeof(a)/sizeof(a[0])); for (int i = 0; i < (sizeof(a) / sizeof(a[0]));i++) cout << a[i] << ' '; return 0;}
0 0
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法---插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法---插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- c++代理类代码示例
- 创建省级级联
- c3p0和QueryRunner的结合使用,让开发更加简便
- Nginx服务器架构简析
- tcpdump抓包
- 排序算法:插入排序
- 链表的一些题目
- C++一步一步实现二叉搜索树
- android 短信的接收和发送处理
- windows如何配置java和maven?
- IOS自定义NSLOG和断言的使用/description方法的使用原理(对象,数组,字典)
- 算法与数据结构前绪
- 微信/支付宝支付js
- 欢迎使用CSDN-markdown编辑器