排序算法之直接插入法
插入算法主要记住三点:就是算法的核心了
1.要比较的元素拿出来
2.符合条件的元素后移
3.把拿出来的元素放到正确的位置
直接上代码:
#include<iostream>
using namespace std;
//直接插入元素的本质
/*
1.要比较的元素拿出来
2.符合条件的元素后移
3.把拿出来的元素放到正确的位置
49 38 65 97 76 13 27
*/
void StraitInsertSort(int array[],int length)
{int tmp = -1;int k = -1;for (int i = 1; i < length; i++){k = i;//要插入的位置tmp = array[k];//1.要比较的元素拿出来for (int j = i - 1; j >= 0 && array[j]>tmp; j--){array[j + 1] = array[j];//2.满足条件后移k = j;}array[k] = tmp;//3.把拿出来的元素放到正确位置}}
//49 38 65 97 76 13 27
void StraitInsertSort1(int array[], int length)
{int tmp = -1;int j = 0;for (int i = 1; i < length; i++){if (array[i]<array[i - 1]){tmp = array[i];//1.要比较的元素拿出来for (j = i - 1; j >= 0 && array[j]>tmp; j--){array[j + 1] = array[j];//2.满足条件后移}array[j+1] = tmp;//3.把拿出来的元素放到正确位置}}}int main()
{int array[7] = {49,38,65,97,76,13,27};int length = sizeof(array) / sizeof(int);StraitInsertSort1(array, length);for (int i = 0; i < length; i++){printf("array[%d]=%d\n",i,array[i]);}return 0;
}
排序算法之直接插入法相关推荐
- 常见排序算法2–直接插入法vs希尔排序法
常见排序算法–直接插入法vs希尔排序法 首先,我们通过一个例子来了解直接插入算法 例如,对原始数组{15,24,3,49,10}进行直接插入排序(由小到大进行排序) 第一个数15无法比较,第二个数24 ...
- 排序算法之简单插入法排序(Java)
简单插入排序 时间复杂度 O(n*n) 稳定的排序算法 逐一取出元素,在已排好的元素序列中从后向前扫描,插入到适当的位置 部分代码如下: public static void insert_ ...
- 排序算法(三)—— 插入法排序算法
1.插入法排序算法介绍 插入法是一个比较常用的排序方法.插入法排序的思路就是将要排序的数组分两个区间,一个是已排序区间,一个是未排序区间.初始时,默认第一个元素是已排序区间的,后面的所有元素为未排序区 ...
- C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法
选择法排序 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序.从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最 ...
- c语言排序算法插入法,C语言中冒泡法、选择法、插入法三种常见排序算法分析.doc...
C语言中冒泡法.选择法.插入法三种常见排序算法分析.doc 一.冒泡法(起泡法) 算法要求用起泡法对10个整数按升序排序. 算法分析如果有n个数,则要进行n-1趟比较.在第1趟比较中要进行n-1次相邻 ...
- 排序算法——直接插入法(超详细)
例如:2,1,8,3从小到大排序 步骤: 1.假设该数组为a[],先看第一个数2,一个数必然有序,所以遍历的时候,n个数只需要遍历n-1次: 2.接着排1,排哪个先将哪个拿出来 tmp=1:(假如此时 ...
- 3分钟快速实现:9种经典排序算法的可视化
作者 | 爱笑的眼睛 来源 | 恋习Python(ID:sldata2017) 最近在某网站上看到一个视频,是关于排序算法的可视化的,看着挺有意思的,也特别喜感. ▼ 6分钟演示15种排序算法 不知道 ...
- 3min利用Python实现9种经典排序算法可视化!(附源代码)
来源:恋习Python 本文附视频,建议收藏. 本文为你分享实现9种经典排序算法可视化的方法,3分钟即可实现. [导 读]近在某网站上看到一个视频,是关于排序算法的可视化的,看着挺有意思的,也特别喜感 ...
- C语言三种常见排序算法
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105112802 三 ...
最新文章
- 如何拼通网络ip地址_如何解决IP地址冲突
- JavaScript前端框架的思考
- TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
- post xmlrpc.php,宝塔面板WordPress /xmlrpc.php经常被post恶意数据
- php的类装载的步骤,设计PHP自动类装载功能
- .NET Core授权失败如何自定义响应信息?
- 计算机等级考试考卷试题按钮,全国计算机等级考试一级B模拟试题及答案2011.7...
- django model中的DateField()转为时间戳
- 美轮美奂渐变炫彩海报素材,荣盛回来!
- 蓝桥杯 算法训练 区间k大数查询
- JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义? 在try块中可以抛 出异常吗?...
- 基于JSP的数据库增删改查实现
- 【codevs3955】最长严格上升子序列(加强版)
- 采用路径模型实现遍历二叉树的方法
- ArcGIS Engine打开文件地理数据库
- 博弈论中的几个经典问题
- 如何用计算机接收光纤网络电视,家里只有一根网络电缆. 电脑和电视如何共享互联网?如何在机顶盒和路由器之间建立连接?...
- linux 实时查看cpu温度
- 二十四节气-寒露,月斜寒露白,此夕去留心
- vue实现二维码批量打印功能