TS实现排序算法之选择排序

2023-11-07

/**
 * 选择排序算法:每次从待排序序列中找出最大值或最小值,查找过程重复 n-1 次。
 * 对于每次找到的最大值或最小值,通过交换元素位置的方式将它们放置到适当的位置,最终使整个序列变成有序序列。
 * 升序排列时,每次查找待排序序列中的最小值的位置,然后交换位置将每次查找到的最小值按照从前到后的顺序放在序列前面
 * 时间复杂度:O(n^2)
 */

// 使用选择排序算法对 {14, 33, 27, 10, 35, 19, 42, 44} 完成升序排序
const slectionSort = (list: Array<number>) => {
  const length = list.length;
  if (length <= 1) {
    return list;
  }
  for (let i = 0; i < length - 1; i++) {
    let min = i;
    for (let j = i + 1; j < length; j++) {
      if (list[min] > list[j]) {
        min = j;
      }
    }
    if(min !== i){
      const temp = list[i];
      list[i] = list[min];
      list[min] = temp;
    }
  }
  return list;
}
const listArr = slectionSort([14, 33, 27, 10, 35, 19, 42, 44])
console.log(`插入排序算法后的序列为:${listArr}`);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TS实现排序算法之选择排序 的相关文章

随机推荐

  • Linux 字节序与字节对齐优化

    1 字节序跟Linux Windows无关 是由CPU构架决定 同一个CPU不管装的是Windows 或 Linux 字节序都是一样的 2 字节对齐 Linux 全用 attribute packed 作用于结构体 类似于pragma pa
  • 【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

    引言 密集连接网络和卷积神经网络都有主要的特点 那就是它们没有记忆 它们单独处理每个输入 在输入和输入之间没有保存任何状态 举个例子 当你在阅读一个句子的时候 你需要记住之前的内容 我们才能动态的了解这个句子想表达的含义 生物智能已渐进的方
  • easyexcel poi根据模板导出Excel

    1 导入依赖
  • 最大和的连续子数组

    1 题目背景 给你一个整数数组nums 请你找出一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 子数组是数组中的一个连续部分 2 代码实现 public class Solution public static void
  • 关于HTTP常见状态码

    http状态码 HTTP Status Code 表示网页服务器超文本传输协议响应状态的3位数代码 是服务器用来告诉客户端当前请求响应的状态 通过状态码判断服务器运行状态 分类的第一位数字来表示 1xx表示消息 2xx表示成功 3xx表示重
  • 指向函数的指针 ------ 函数指针(function pointer)

    函数具有可赋值给指针的物理内存地址 一个函数的函数名就是一个指针 它指向函数的代码 一个函数的地址是该函数的进入点 也是调用函数的地址 函数的调用可以通过函数名 也可以通过指向函数的指针来调用 函数指针还允许将函数作为变元传递给其他函数 不
  • 读写一致 && MySQL&&Redis

    存储一致性 CPU存储 L1L2Cache等等 不懂CPU如何读写内存还敢说自己是程序员 知乎 zhihu com 基础知识 1 什么是cache line cache line 位于 CPU 与内存之间 CPU想要获得数据的时候 先从CP
  • Typora+PicGo+Alist 私人图床教程

    前置资源 已安装好typora 直接官网下载即可 Typora 官方中文站 typoraio cn 安装好PicGo 稳定版优先 推荐稳定版2 3 1 PicGo 腾讯云COS 下载链接 下载速度快 https picgo 12517503
  • 人民币兑换python

    输入一个人民币的整数值 100以内以元为单位 编程找到用10元 5元 2元 1元表示的总数量的最小组合方式 输入形式 从控制台输入一个整数值 表示以元为单位的人民币币值 输出形式 向控制台输出四个整数 以空格分隔 分别表示兑换成的10元 5
  • linux安装minio以及springboot整合使用

    文章目录 1 linux安装minio 2 springboot整合minio使用 1 linux安装minio 1 新建文件夹 mkdir home minio 数据文件夹 mkdir home minio data 创建日志文件夹 mk
  • python-selenium-pytest-allure UI自动化测试

    一 下载及安装插件 python selenium pytest allure 辅助 pyautoit pymysql 二 代码框架 1 基础文件 main py if name main pytest main alluredir all
  • 台式电脑没鼠标怎么移动光标_台式电脑没有鼠标怎么操作电脑

    没鼠标只能靠键盘操作了 以下都是键盘快捷键命令F6 选择操作区域光标键 选择目标backspac 退回上一级目录enter 进入 运行 table 项目选择单独按Windows 显示或隐藏 开始 功能表Windows BREAK 显示 系统
  • gettimeofday windows上的实现

    gettimeofday是Linux上的函数 在windows的实现 这里直接转doubango工程中的tsk time c 源文件种的实现 可以参考 include tsk time h include tsk debug h if TS
  • CodeBlocks新手安装以及汉化(20,03版本)

    CodeBlocks 20 03安装以及汉化设置 CodeBlocks官网 https www codeblocks org downloads binaries CodeBlocks 20 03安装包及汉化包下载 链接 https pan
  • 利用python实现简易版的贪吃蛇游戏(面向python小白)

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 引言 作为python 小白 总是觉得自己要做好百分之二百的准备 才能开始写程序 以至于常常整天在那看各种语法教程 学了几个月还是只会print hello world 这
  • 线性回归算法

    一 监督学习完整流程 房价预测为例 给出正确答案 根据我们的数据来说房子实际的价格是多少 回归问题 根据之前的数据预测出一个准确的输出值 另一种监督学习流程 分类问题 寻找癌症肿瘤问题 当我们想要预测离散的输出值 例如寻找癌症肿瘤并想要确认
  • 新安装的IDEA 2019.2---没法启动 Start Failed

    Internal error Please report to http jb gg ide critical startup errors com intellij ide plugins MainRunner StartupAborte
  • 数学基础(一)矩阵对角化、SVD分解以及应用

    目录 一 矩阵 1 矩阵的性质 2 单位矩阵和逆矩阵 3 矩阵的对角化 二 矩阵的SVD分解 三 SVD的应用 一 矩阵 1 矩阵的性质 下面列出了矩阵的一些性质 A表示一个p m的矩阵 B C表示一个m n的矩阵 最后一条比较常用 由于x
  • Python编程基础题(18-求平均值)

    Description 本题的基本要求非常简单 给定 N 个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后 2 位 当你计算平均值的时候 不能把那些
  • TS实现排序算法之选择排序

    选择排序算法 每次从待排序序列中找出最大值或最小值 查找过程重复 n 1 次 对于每次找到的最大值或最小值 通过交换元素位置的方式将它们放置到适当的位置 最终使整个序列变成有序序列 升序排列时 每次查找待排序序列中的最小值的位置 然后交换位