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

建站工具官网软件设计网站

建站工具官网,软件设计网站,英文版科技网站,河北网站开发价格文章目录 TypeScript 算法手册 - 冒泡排序1. 冒泡排序简介1.1 冒泡排序定义1.2 冒泡排序特点 2. 冒泡排序步骤过程拆解2.1 比较相邻元素2.2 交换元素2.3 重复过程 3. 冒泡排序的优化3.1 提前退出3.2 记录最后交换位置案例代码和动态图 4. 冒泡排序的优点5. 冒泡排序的缺点总结 …

文章目录

  • TypeScript 算法手册 - 冒泡排序
    • 1. 冒泡排序简介
      • 1.1 冒泡排序定义
      • 1.2 冒泡排序特点
    • 2. 冒泡排序步骤过程拆解
      • 2.1 比较相邻元素
      • 2.2 交换元素
      • 2.3 重复过程
    • 3. 冒泡排序的优化
      • 3.1 提前退出
      • 3.2 记录最后交换位置
      • 案例代码和动态图
    • 4. 冒泡排序的优点
    • 5. 冒泡排序的缺点
    • 总结

在这里插入图片描述

【 已更新完 TypeScript 设计模式 专栏,感兴趣可以关注一下,一起学习交流🔥🔥🔥 】

TypeScript 算法手册 - 冒泡排序

1. 冒泡排序简介

1.1 冒泡排序定义

冒泡排序是一种简单的排序算法,重复地遍历要排序的数列,一次比较两个元素,他们的顺序错误就把他们交换过来。这个过程就像水底的气泡一样从底部向上"冒泡"到水面,这也是冒泡排序名字的由来。

用 TypeScript 代码表示一个简单的冒泡排序:

function bubbleSort(arr: number[]): number[] {const len = arr.length;for (let i = 0; i < len - 1; i++) {for (let j = 0; j < len - 1 - i; j++) {if (arr[j] > arr[j + 1]) {[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];}}}return arr;
}

1.2 冒泡排序特点

  1. 简单直观: 冒泡排序是最简单的排序算法之一
  2. 稳定性: 冒泡排序是一种稳定的排序算法
  3. 原地排序: 冒泡排序是原地排序算法,不需要额外的存储空间

2. 冒泡排序步骤过程拆解

2.1 比较相邻元素

// 交换元素
if (arr[j] > arr[j + 1]) {
}

2.2 交换元素

// 交换元素
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];

2.3 重复过程

// 比较和交换
for (let i = 0; i < len - 1; i++) {for (let j = 0; j < len - 1 - i; j++) {}
}

3. 冒泡排序的优化

3.1 提前退出

// 提前退出
function bubbleSortOptimized(arr: number[]): number[] {const len = arr.length;for (let i = 0; i < len - 1; i++) {let swapped = false;for (let j = 0; j < len - 1 - i; j++) {if (arr[j] > arr[j + 1]) {[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];swapped = true;}}if (!swapped) break;}return arr;
}

3.2 记录最后交换位置

// 记录最后交换位置
function bubbleSortFurther(arr: number[]): number[] {let lastExchangeIndex = 0;let sortBorder = arr.length - 1;for (let i = 0; i < arr.length - 1; i++) {let isSorted = true;for (let j = 0; j < sortBorder; j++) {if (arr[j] > arr[j + 1]) {[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];isSorted = false;lastExchangeIndex = j;}}sortBorder = lastExchangeIndex;if (isSorted) break;}return arr;
}

案例代码和动态图

const array = [29, 10, 14, 66, 37, 14];
const sortedArray = bubbleSort(array);
console.log(sortedArray); // [10, 14, 14, 29, 37, 66]

在这里插入图片描述

4. 冒泡排序的优点

  1. 代码简单,容易理解
  2. 稳定排序
  3. 原地排序,不需要额外空间

5. 冒泡排序的缺点

  1. 时间复杂度较高,为 O(n^2)
  2. 交换次数过多

总结

冒泡排序是一种简单直观的排序算法,虽然效率不高,但是在处理小规模数据或者基本有序的数据时还是很有用的。理解冒泡排序的原理对于学习更复杂的排序算法也很有帮助。

喜欢的话就点个赞 ❤️,关注一下吧,有问题也欢迎讨论指教。感谢大家!!!

下期预告: TypeScript 算法手册 - 选择排序

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

相关文章:

  • 企业网站建设哪家效果好上海电子手工活外发加工网
  • 学做网站设计需要多少钱不会写代码怎么做网站
  • 买外贸服装去哪个网站个人建网站一般多少钱
  • 站的免费网站wordpress转enlog
  • 大连网站建设 选领超科技做统计图的网站
  • 做网站如何盈利厦门建设局网站中标结果查询
  • 我想建设一个算命网站无锡怎么做网站推广
  • 网站设计注意事项服务器安全加固
  • 做外国网站百度搜到2020十大热点事件
  • 网站建设验收报告自己做的网站怎么管理用户
  • wordpress建立手机网站搭建网站需要什么
  • 建设网站对于电商的作用是?中信建设有限责任公司 吴方旭
  • 网站制作需要的材料行唐县网站建设
  • 个人网站首页布局图网站源码防盗原理
  • 公司网站开发怎么做账简历模板下载word格式
  • 二级建造师证件查询廊坊做网站优化的公司
  • 做网站咨询域名的购买费用
  • 旅游网站建设维护wordpress为什么进不去了
  • 网站设计有哪些语言版本国外优秀设计网站推荐
  • 电子商务网站建设指导书市区网站建设情况
  • 全球设计网站军事新闻最新消息今天报道
  • 建设盗号网站的模块各行各业网站建设
  • 商城网站解决方案wordpress支持建多个站点吗
  • 国外哪些网站做产品推广比较好邢台千度网络科技有限公司
  • 互联网网站基础小学网站源码php
  • 柯桥区建设集团网站株洲市哪里有做公司官方网站
  • 三亚做网站多少钱域名免费注册网站
  • 邢台做网站推广价格网站链接结构
  • 建设手机版网站做网站 毕业设计
  • 五莲网站设计佛山外发加工网