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

江西学校网站建设专业的网站设计公司

江西学校网站建设,专业的网站设计公司,如何用手机制作app,管理咨询公司属于什么行业描述 插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的数据序列分为已排序和未排序两部分,每次从未排序序列中取出一个元素,然后将它插入到已排序序列的适当位置,直到所有元素都插入完毕,即完成排序。 实现思路…

描述

插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的数据序列分为已排序和未排序两部分,每次从未排序序列中取出一个元素,然后将它插入到已排序序列的适当位置,直到所有元素都插入完毕,即完成排序。

实现思路

  1. 从第一个元素开始,将其视为已排序序列。
  2. 取出未排序序列的第一个元素,并将它与已排序序列的元素逐个比较。
  3. 如果找到一个已排序序列的元素大于待插入元素,将该元素后移一位。
  4. 重复步骤3,直到找到一个已排序序列的元素小于或等于待插入元素。
  5. 将待插入元素插入到这个位置。
  6. 重复步骤2-5,直到未排序序列中的所有元素都被插入到已排序序列中。

图解

image.png

代码

#include <iostream>
#include <vector>using namespace std;void insertionSort(vector<int>& arr) {int n = arr.size();for (int i = 1; i < n; ++i) {int key = arr[i];int j = i - 1;while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}
}int main() {vector<int> arr = {9, 5, 7, 1, 3};insertionSort(arr);cout << "插入排序 :" << endl;for (int num : arr) {cout << num << " ";}cout << endl;return 0;
}

输出结果:
image.png

时间复杂度

根据循环次数,插入排序的平均时间复杂度为O(n2),最好情况下为O(n),最坏情况下为O(n2)。

空间复杂度

插入排序的空间复杂度为O(1)。

技巧

  1. 在内层循环中,可以通过将待插入元素与已排序序列的最后一个元素进行比较,而不是逐个比较已排序序列的元素,以提高效率。
  2. 可以使用二分查找来在已排序序列中找到待插入元素的插入位置,以进一步提高效率。

结论

坚持自己的梦想,即使没有翅膀也能飞翔

http://www.yayakq.cn/news/244292/

相关文章:

  • 网站宣传的方式织梦cms小说网站采集
  • 印刷报价网站源码网站怎么做描文本
  • 什么是网站后期建设漯河企业网站开发
  • 秦皇岛建设局局官方网站浙江百度代理公司
  • 佛山市住房和建设局网站首页知名的产品设计网站
  • 如何建设品牌网站权鸟拓客app下载
  • 怎么做提升网站转化率网站排版怎么做的
  • 本溪做网站的免费网络推广工具
  • 高端企业网站建设服务商商标网注册查询官网
  • 自己做网站seowordpress表格内容如何修改
  • 一般建设一个网站多少钱网站备案后 换服务器
  • 网站ip访问做图表企业宣传视频制作公司
  • 福州seo网站推广前端移动网站开发
  • 模仿网站侵权吗保定电子商务网站建设
  • 网站建设价格标准报价外贸网站建设服务商
  • 网站建设与管理大作业沈阳妇科
  • 建设一个网站需要的条件电子网站建
  • 网站怎样做301学做网站需要多久时间
  • 做响应式网站公司做网页的软件哪个好用
  • 做期货财经网站需要哪些资质手机代理ip免费
  • 网站内部链接怎么做的找工程承包找哪个平台
  • 计算机网络中小型企业网络设计方案seo排名优化联系13火星软件
  • 海晏县公司网站建设石排镇做网站
  • 建立一个网站的步骤微信商城小程序定制
  • 如何设计网站以网络为中心的企业文化上海seo网站建设
  • 怎样做网站3天赚100万网站建设基础教案
  • 顺德龙江做网站撤销个人网站备案
  • 专业的网站建设与优化wordpress图片验证码插件
  • 北京网站备案查询网站建设合同详细
  • 国外扁平化设计网站在线手机网页制作