算法排序之插入排序
来源:互联网 发布:进销存软件源码下载 编辑:程序博客网 时间:2024/06/14 17:27
1、插入排序
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
点击插入排序可视化可以更直观明白插入排序。
2、插入排序demo
#include <iostream>#include <stdio.h>using namespace std;const int n = 10;template <class T>void insertSort(T *data, const int n);int main(int argc, const char *argv[]){ double data[n] = {10.1, 9.2, 8.3, 7.4, 6.5, 5.6, 4.7, 3.8, 2.9, 1.0}; printf("Insert sort before:\n"); for (int i = 0; i < n; i++){ cout << data[i] << " "; } insertSort(data, n); printf("Insert sort after :\n"); for (int i = 0; i < n; i++){ cout << data[i] << " "; } return 0;}template <class T>void insertSort(T *data, const int n){ int out, in; T temp; for (out = 1; out < n; out++){ temp = data[out]; in = out; while ((in > 0) && (temp < data[in-1])){ data[in] = data[in-1]; in--; } data[in] = temp; } printf("\n");}
阅读全文
0 0
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之 插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 17暑假多校联赛6.8 HDU 6103 Kirinriki
- 原生js倒计时
- 设计模式OOP原则
- linux下安装usb转pl2303串口驱动
- 不需要预训练模型的检测算法—DSOD
- 算法排序之插入排序
- Spring自定义tag标签及使用
- 线程干扰错误
- HDU6090-Rikka with Graph
- 求解一元二次方程的解
- -----尺取法 hdu 6103-Kirinriki
- 自已动手编译Linux系统-基于ALFS的LFS8.0实践(六)
- 学习笔记TF037:实现强化学习策略网络
- [linux] cp指令