排序算法之插入排序
来源:互联网 发布:弹钢琴软件 编辑:程序博客网 时间:2024/06/08 17:16
本文是自己在阅读《数据结构与算法分析c++描述》一书中的笔记、总结系列之一,主要会介绍排序算法中的插入排序的算法思想,代码实现。
一、插入排序之算法思想
内存中有数组1存放未排序状态的元素,排完序之后的元素也是放入该数组中,所以在排序的过程中,数组的前端处于有序状态,后端处于无序状态直至所有元素都处于有序状态。元素的个数为N,P为当前待比较的元素(仅指一个,注意P是从位置1开始)。
我们假设先将数组1中第一个元素即认为为当前最小元素,然后从P=1开始到P=N,对每一个P指向的元素与P所指元素之前的元素进行比较,若前端元素较大,则前端元素后退一个位置,直到遇到比该元素小的元素或者遇到数组头,则插入P所指向元素。
二、实现代码
#include <iostream>#include <vector>using namespace std;void insertionsort(vector<int> & arrayint){ for (int p = 1; p < arrayint.size(); p++) { int tmp = arrayint[p]; for (int j = p - 1; j >= 0; j--) { if (arrayint[j] < tmp) { arrayint[j + 1] = tmp; } else { if (j == 0) { arrayint[j + 1] = arrayint[j]; arrayint[0] = tmp; } else arrayint[j + 1] = arrayint[j]; } } }}void main(){ vector<int> arrayinput; int a; cout << "please input numbers: " << endl; while (cin >> a) { arrayinput.push_back(a); } insertionsort(arrayinput); for (auto a : arrayinput) cout << a<<" "; getchar();}
0 0
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之 插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- Java 程序中执行update返回结果
- Android欢迎界面动画与跳转
- Struts2标签库
- 五子棋的小游戏
- 软件测试
- 排序算法之插入排序
- Metal 着色语言编程指南 二十
- django:Many-to-many关系
- ReactNative – 组件的生命周期
- Git 学习 -- 远程操作
- [架构设计]第一讲:什么是架构
- 直接插入排序java版
- Java基础知识汇总2
- javascript前端工具------Bower管理客户端依赖