【减治法】插入排序及C++代码实现
来源:互联网 发布:卷皮折扣和淘宝那个好 编辑:程序博客网 时间:2024/06/10 08:11
一、插入排序原理:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。
以下面5个无序的数据为例:
65 27 59 64 58 (文中仅细化了第四次插入过程)
第1次插入: 27 65 59 64 58
第2次插入: 27 59 65 64 58
第3次插入: 27 59 64 65 58
第4次插入: 27 58 59 64 65
插入排序过程动画:
二、代码实现
伪代码:
InsertionSort(A[0..n-1])//用插入排序对给定数组排序//输入:n个可排序元素构成的一个数组A[0..n-1]//输出:非降序排列的数组A[0..n-1]for i <- 1 to n-1 do v <- A[i] j <- i-1while j>=0 and A[j]>v do A[j+1] <- A[j] j <- j-1A[j+1] <- v
代码实现
void InsertionSort(int *a, int len) { for (int j=1; j<len; j++) { int key = a[j]; int i = j-1; while (i>=0 && a[i]>key) { a[i+1] = a[i]; i--; } a[i+1] = key; } }
阅读全文
0 0
- 【减治法】插入排序及C++代码实现
- 插入排序伪代码及实现
- 插入排序的C代码实现
- 插入排序C语言实现代码
- 插入排序及C语言实现
- 排序--直接插入排序思想及代码实现
- 插入排序代码实现
- 常用排序算法之插入排序c及lua实现
- 算法代码实现之插入排序,C/C++实现
- 插入排序C实现
- C实现插入排序
- 插入排序 C实现
- 数据结构 - 2-路插入排序 详解 及 代码(C++)
- 数据结构 - 表插入排序 详解 及 代码(C++)
- 插入排序(解析及代码实现 二分优化)
- 简单选择、冒泡、插入排序思想及Java实现代码
- 简单的C语言插入排序实现代码
- 减治法之插入排序(C实现)
- VINS技术路线与代码详解
- 用栈来进行数字的进制转换
- Oracle:时间戳
- Dialvik/ARP(ANDROID)中的多线程机制(2)
- netty对http协议解析原理解析
- 【减治法】插入排序及C++代码实现
- 基础练习 完美的代价(蓝桥杯 字符串问题)
- cygwin工具安装使用
- 最少货币数问题
- 进程fork和vfork函数复习
- Dialvik/ARP(ANDROID)中的多线程机制(3)
- js对象、继承,原型链相关知识及应用心得
- Yii2 中模块相关配置
- codeforces672 A (数字转换成字符串)