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

怎么做公司网站的二维码专业做网文的网站

怎么做公司网站的二维码,专业做网文的网站,网站图标ico,镇海seo专业优化平台插入排序实现思路:将一个新的数,和前面的比较,只要当前数小于前一个则和前一个交换位置,否则终止;「时间复杂度:O(N^2);」「空间复杂度:O(1)」 一、标准方式 function insertSort(a…

插入排序实现思路:将一个新的数,和前面的比较,只要当前数小于前一个则和前一个交换位置,否则终止;
「时间复杂度:O(N^2);」
「空间复杂度:O(1)」

 一、标准方式

function insertSort(arr) {// 检查输入是否为数组且不为空if (!Array.isArray(arr) || arr.length <= 0) {return [];}// 定义交换函数const swap = (arr, i, j) => {const temp = arr[i];arr[i] = arr[j];arr[j] = temp;};// 插入排序for (let i = 1; i < arr.length; i++) {for (let j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {swap(arr, j, j + 1);}}return arr;
}

插入排序的实现原理是将一个数组分为已排序区间和未排序区间,每次从未排序区间中取出一个元素,将其插入到已排序区间中的合适位置,直到未排序区间为空。具体实现过程如下:

  1. 从第一个元素开始,该元素可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到该位置后
  6. 重复步骤2~5

插入排序的优点是实现简单,代码量小,适用于小规模数据的排序。缺点是时间复杂度为O(n^2),不适用于大规模数据的排序。

二、另一种实现方式

function insertSort(arr) {for (let i = 1; i < arr.length; i++) { // 从第二个元素开始遍历let j = i - 1; // 定义一个指针,指向当前元素的前一个元素const temp = arr[i]; // 将当前元素存储到temp中while (j >= 0 && arr[j] > temp) { // 如果指针没有越界并且前一个元素大于当前元素arr[j + 1] = arr[j]; // 将前一个元素向右移动一位j--; // 指针向左移动一位}arr[j + 1] = temp; // 将当前元素插入到正确的位置}return arr; // 返回排序后的数组
}

第一段代码是标准的插入排序实现,它使用一个指针j来指向当前元素的前一个元素,然后将当前元素插入到正确的位置。具体来说,它从第二个元素开始遍历,将当前元素存储到temp中,然后将指针j向左移动,直到指针越界或者前一个元素小于等于当前元素,然后将当前元素插入到j+1的位置。

第二段代码也是插入排序的实现,但是它使用了交换函数来交换元素的位置。具体来说,它从第二个元素开始遍历,然后将当前元素与前一个元素比较,如果前一个元素大于当前元素,就交换它们的位置,直到当前元素插入到正确的位置。

总的来说,这两段代码的实现思路是一样的,都是将当前元素插入到已经排好序的部分中。但是第一段代码使用了一个指针来指向当前元素的前一个元素,然后将当前元素插入到正确的位置,而第二段代码使用了交换函数来交换元素的位置。

三、测试用例

const arr1 = [3, 0, 2, 5, -1, 4, 1];
console.log(insertSort(arr1)); // [-1, 0, 1, 2, 3, 4, 5]const arr2 = [1, 2, 3, 4, 5];
console.log(insertSort(arr2)); // [1, 2, 3, 4, 5]const arr3 = [5, 4, 3, 2, 1];
console.log(insertSort(arr3)); // [1, 2, 3, 4, 5]

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

相关文章:

  • 佛山网站优化什么价格兰州网络推广关键词优化
  • 成都网站建设六六有哪些做外贸免费的网站
  • 揭阳网站开发mituad营销案例分析网站
  • 网站建设seo 视频企业加盟网站建设
  • 化纤公司网站建设站长之家psd素材
  • 设计网站的优势在阿里云安装wordpress
  • 做网站的基本知识响应式网站和自适应
  • 网站建设业务员怎么做淘客网站开发教程
  • 网络运维工程师自我介绍网站优化的文章
  • 网站注册流程和费用中国最新军事新闻500字
  • 台州做网站优化哪家好wordpress 关闭搜索功能
  • 网站加载效果怎么做的免费推广网店
  • 桂林生活网官网优化大师的作用
  • 重庆免费网站建站模板自学网站建设看什么书
  • 大庆网站制作公司地址红安建设局网站
  • 上传了网站标志 功能链接做游戏女角色去衣的网站
  • 网站开发的相关岗位专业定制网站建设
  • 网站开发的重难点什么是网络整合营销
  • 如何建设网站后台网站建设的看法有哪些
  • 网站关键字工具宜昌做网站的公司
  • 怎么宣传自己的网站推广登封做网站优化
  • 做自己的网站的好处站长平台
  • 做视频哪个网站收入高wordpress 关闭更新
  • 江苏省建设类高工申报网站投资者网站建设
  • 济南seo网站排名关键词优化互联网金融p2p网站建设模板
  • 手机端网站欣赏网站建设招标书
  • 网站规划模板wordpress脚本演示功能
  • 企业备案做电影网站的后果用友erp管理系统多少钱
  • 电子商务网站建设的范围是什么一份完整的电商运营方案
  • 网站建设好不好学做it行业招标网站