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

排序算法--插入排序

实现逻辑
① 从第一个元素开始,该元素可以认为已经被排序
② 取出下一个元素,在已经排序的元素序列中从后向前扫描
③如果该元素(已排序)大于新元素,将该元素移到下一位置
④ 重复步骤③,直到找到已排序的元素小于或者等于新元素的位置
⑤将新元素插入到该位置后
⑥ 重复步骤②~⑤

void print_array(int a[], int n){for (int i = 0; i < n; ++i){cout << a[i] << " ";}cout << endl;
}void insertSort(int arr[], int nSize){for (int i = 1; i < nSize; ++i){int value = arr[i];int ipos = i;while(ipos >= 1 && arr[ipos - 1] < value){arr[ipos] = arr[ipos - 1];ipos--;}arr[ipos] = value;}
}int main(){int arr[] = {10, 8, 11, 7, 4, 12, 9, 6, 5, 3};int len = sizeof(arr)/sizeof(arr[0]);cout << "排序前:";print_array(arr, len);insertSort(arr, len);cout << "排序后:";print_array(arr, len);return 0;
}

输出结果:
在这里插入图片描述

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

相关文章:

  • 【操作宝典】SQL巨擘:掌握SQL Server Management的终极秘籍!
  • Airtest遇到模拟器无法输入中文的情况该如何处理?
  • 从农夫山泉家族任命,看“食企二代”的接班与传承
  • JavaScript启动本地应用程序
  • 软件工程理论与实践 (吕云翔)第十四章 软件维护与软件工程管理课后习题与解析
  • Flutter 桌面应用开发之读写Windows注册表
  • 【Java Spring】SpringBoot 日志系统
  • Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)
  • P19 C++ 构造函数的成员初始化列表
  • acwing算法基础之数学知识--Nim游戏和集合Nim游戏
  • 大数据Doris(二十八):Routine Load查看和修改作业
  • 顺序表总结
  • flutter 文本不随系统设置而改变大小[最全的整理]
  • python -opencv 图像锐化
  • 数字电源为什么一般用DSP控制,而不能用普通的单片机?
  • 个人投资白银收益怎么样?
  • 代码随想录算法训练营 ---第四十五天
  • 【密码学】【多方安全计算】不经意传输(Oblivious Transfer,OT)
  • STL常用算法-C++
  • 一、Lua基础
  • vue3 webSocket 封装及使用
  • 记录vscode常用插件集合(extensions)
  • 正则表达式详解
  • 【限时免费】20天拿下华为OD笔试之【双指针】2023Q1A-两数之和绝对值最小【欧弟算法】全网注释最详细分类最全的华为OD真题题解
  • expect脚本在自动化部署中的具体应用案例
  • 【Java+SQL Server】前后端连接小白教程
  • Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持
  • Web语言基础课程期末代做
  • Scanner常用知识点
  • uniapp页面使用多个echarts出现数据渲染错乱问题解决