插入排序实现

简介: 算法原理:将待排序的数组分为:有序区 和 无序区。然后每次从无序区取出第一个数据插入到有序区的正确位置,最终完成排序。算法代码: #include using namespace std; void insert_sort(int *arr,int n) { ...

算法原理:将待排序的数组分为:有序区 和 无序区。然后每次从无序区取出第一个数据插入到有序区的正确位置,最终完成排序。
算法代码:

#include <iostream>

 using namespace std;

 void insert_sort(int *arr,int n)
 {
     int i,j;
     for(i = 1 ; i < n ; ++i)
     {
         int tmp = arr[i];
         j = i - 1;
         while( j >= 0 && arr[j] > tmp)
         {
             arr[j+1] = arr[j];
             j--;
         }
         arr[j+1]  = tmp;
     }
 }

 int main()
 {
     int arr[] = {2,4,1,3,5,8,7,6,8};
     insert_sort(arr,9);
     for(int i = 0  ; i < 9 ; ++i)
     {
         cout<<arr[i]<<" ";
     }
     cout<<endl;
     return 0;
 }

小结:看代码可以知道这种排序算 法的时间复杂度是O(n^2),并且插入排序时稳定的,属于原地排序。那么什么时候使用插入排序比较好呢?那就是当数组中的大部分数据已经有序时,使用插 入排序算法的效率比较高,这种情况下,所需要进行的数据移动较少,而数据移动正式插入排序算法的主要步骤~~~~

 

目录
相关文章
|
8月前
|
前端开发 Cloud Native Java
通过el-tree自定义渲染网页版工作目录,实现鼠标悬浮显示完整名称、用icon区分文件和文件夹等需求
el-tree用来做前端的文档目录还是挺好用的,尤其是自带的node-click事件,真的给后续功能的实现提供了很多帮助,其他的事件方法也很全面,用起来还是很舒服的。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
运维 安全 Cloud Native
解读平台工程,DevOps真的死了吗?不,它只是换了个马甲而已,依然是DevOps的延续
最近平台工程这个概念越来越火爆,Gartner 的预测,到 2026 年,80% 的软件工程组织将拥有平台工程团队,来提供内部服务、组件和应用程序交付工具,作为可重复使用的资源。本篇文章将带你走进平台工程,了解它的起源和解决的问题。
442 0
|
人工智能 监控 安全
Springcloud数字化物联网智慧工地综合平台源码 劳务管理、设备管理、绿色施工
Springcloud数字化物联网智慧工地综合平台源码 劳务管理、设备管理、绿色施工
356 3
|
容器
认识盒子模型
认识盒子模型。
162 2
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园食堂订餐系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园食堂订餐系统附带文章源码部署视频讲解等
202 10
|
JSON NoSQL MongoDB
在Ubuntu 14.04上如何导入和导出MongoDB数据库
在Ubuntu 14.04上如何导入和导出MongoDB数据库
153 0
|
机器学习/深度学习 传感器 算法
毫米波系统中混合预编码的交替最小化附matlab代码
毫米波系统中混合预编码的交替最小化附matlab代码
|
Linux iOS开发 Windows
iphone14手机投屏到mac电脑最新教程
AirServer 是我最早接触到的 iOS 投电脑的软件。现在 AirServer 产品线已经丰富到“吓人”的地步,包含了投屏电脑(Windows、Surface、Mac)、游戏机(XBox)、电视(PhilipsTV)、嵌入式Linux设备对应版本的应用,甚至还提供了类似盒子 / AppleTV 的硬件解决方案 AirServer Connect。
858 0
|
存储 安全 编译器
【为什么】C++中的宏
【为什么】C++中的宏
422 0
|
测试技术
loadrunner入门教程(28) --场景运行
运行页面设置的具体介绍
268 0
loadrunner入门教程(28) --场景运行