当前位置: 首页 > news >正文

插入排序 算法

从第二个开始,从后面往前找,如果比其小,就交换,else 就终止

for i = 1 i <n i ++

for j = i     j > 0 (到第二个)    j--

if   <

swap

下面给出源码

//对插入排序来说,直接从第二个元素开始template<typename T >
void InsertSort( T arr[], int n){for(int i = 1 ; i < n ; i++){//寻找【i应该插入的位置】,但是注意我们是从后面往前找所以j 要从后往前// for( int j = i  ; j > 0 ; j --)//     if(arr[j] < arr[j - 1] )//         swap(arr[j], arr[j-1]);//     else //         break;for( int j = i  ; j > 0 && arr[j] < arr[j - 1]; j --)swap(arr[j], arr[j-1]);}int main()
{int n = 100000;int *arr = SortTestHelper :: generateRandomArr(n, 0, n) ;int *arr2 = SortTestHelper :: copyIntArray(arr, n);// InsertSort(arr2, n);// SortTestHelper :: printarr(arr2, n);// selectionSort( arr, n );// SortTestHelper :: printarr(arr, n);SortTestHelper::test_sort("selection Sort", selectionSort, arr,n);SortTestHelper::test_sort("Insertion Sort", InsertSort, arr2,n);delete[] arr;delete[] arr2;return 0;}

辅助函数 多了一个copy 

给出完整代码

int* copyIntArray(int a[], int n){int* arr = new int[n];copy(a, a + n, arr);return arr;}

http://www.lryc.cn/news/199455.html

相关文章:

  • “揭秘!如何通过京东商品详情接口轻松获取海量精准商品信息!“
  • 已经有多人中招,不要被AI换脸技术骗了!
  • solidworks 2024新功能之--保存为低版本 硕迪科技
  • MySQL --- 聚合查询 和 联合查询
  • Note——torch.size() umr_maximum() array.max() itertools.product()
  • python学习笔记6-DefaultDict
  • Redis 底层对 String 的 3 个优化
  • 简约艺术签名小程序源码/流量主小程序源码/字节跳动抖音小程序
  • Ubuntu(kylin)挂载iso文件和配置apt本地源
  • wps表格求标准差怎么算?
  • 安达发|制造企业生产排产现状和APS系统的解决方案
  • Qt判断一个点在多边形内还是外(支持凸边形和凹变形)
  • MySQL导入数据库出现 Got error 168 from storage engine错误
  • 使用 VS Code 作为 VC6 的编辑器
  • Peter算法小课堂—蠕动区间
  • Vant和ElementPlus在vue的hash模式的路由下路由离开拦截使用Dialog和MessageBox失效
  • 上海市通过区块链技术攻关 构建数字经济可信安全技术底座
  • Java 面试题
  • layui 表格 展开
  • [尚硅谷React笔记]——第4章 React ajax
  • Richard Stallman 正在与癌症作战
  • MathType7.4最新免费版(公式编辑器)下载安装包附安装教程
  • 如何支持h.265视频
  • vue 放大镜(简易)
  • 【计算机网络】第一章——概述
  • vue实现在页面拖拽放大缩小div并显示鼠标在div的坐标
  • LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)
  • 【数据结构】线性表(六)堆栈:顺序栈及其基本操作(初始化、判空、判满、入栈、出栈、存取栈顶元素、清空栈)
  • 父组件可以监听到子组件的生命周期吗?
  • [开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具