数据结构与算法——直接插入排序
来源:互联网 发布:什么贵金属软件好 编辑:程序博客网 时间:2024/06/04 20:15
好久没写博客了,今天就简单总结下直接插入排序。
什么是直接插入排序?
直接插入排序就是将某一个元素与顺序表中元素进行比较,然后插入到相应的位置,使整个顺序表处于有序状态。有关数据结构的书上都会用扑克牌进行比喻说明,就跟玩扑克一样,当我们拿到几张牌时,要想整理成一个顺子,我们通常的做法就是将小的牌,插到比他大的牌的前面。具体可以看看书,想一想,还是很容易理解的。
直接插入排序的思路:每次将一个待排序的元素按照其关键码的大小插入到一个已经排好序的有序序列中。
直接插入排序有两个基本问题:
- 如何构造一个初始有序序列。
- 如何在有序序列中查找插入点。
具体实现:
<span style="font-family:Courier New;font-size:14px;">#include <iostream>#define MAXSIZE 10using namespace std;struct SqList{ int r[MAXSIZE+1]; //用于存储要排序的数组 r[0]用作哨兵 int length; //顺序表的长度};void InsertSort(SqList *L) { int j; for(int i=2;i<=L->length;i++) { //元素比较 if(L->r[i]<L->r[i-1]) { L->r[0] = L->r[i]; //将此元素赋值给哨兵 for(j=i-1;L->r[j]>L->r[0];j--) { L->r[j+1] = L->r[j]; //后移 } L->r[j+1] = L->r[0]; //将待插元素放到指定位置 } }}void Print(SqList *L) { for(int i=1;i<=L->length;i++) { cout<<L->r[i]<<" "; }}int main(){ SqList L = {{0,6,8,3,11,7},5}; InsertSort(&L); Print(&L); return 0;}</span>
0 0
- 数据结构与算法——直接插入排序
- 数据结构与算法——插入类排序(直接插入排序,希尔排序)
- 【数据结构与算法】直接插入排序
- 【数据结构与算法 03】直接插入排序
- [数据结构与算法]直接插入排序
- 数据结构与算法简记:直接插入排序
- 数据结构与算法---直接插入排序
- 数据结构与算法---直接折半插入排序
- 数据结构排序算法——直接插入排序
- 数据结构—直接插入排序
- 【数据结构与算法】【排序】直接插入排序的代码实现
- 【数据结构与算法】——插入排序
- 【数据结构与算法】——插入排序
- 算法—直接插入排序
- 【数据结构】算法10.1 插入排序-直接插入
- 新手学习数据结构与算法---直接插入排序
- 数据结构与算法之三直接插入排序
- 数据结构与算法学习之路:直接插入排序
- Qt 学习 之 二进制文件读写
- 一个合格的程序员应该读过哪些书[会不会被吓到? :)]
- 性能测试面试题汇总(二)
- 产品研发核心价值流中的四大业务主线(计划控制线、质量保证线、预算费用线、工程技术线)
- Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式
- 数据结构与算法——直接插入排序
- sublime text 3中文乱码问题解决办法
- cocos2dx 3.x 内存管理总结
- c++学习笔记(4.c++中新的关键字)
- SSL/TLS协议运行机制的概述
- 性能测试面试题汇总(三)
- Redhat下在R中安装RODBC和RMySQL包
- 性能测试面试题汇总(四)
- Django 处理模糊搜索结果