hgq's docs
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)

guoguoqiqi

漫不经心的向往
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)
  • 插入排序
  • 归并排序
  • 快速排序
  • 冒泡排序
  • 选择排序
    • 两数之和
    • 两数相加
    • 无重复字符的最长子串
    • 寻找两个正序数组的中位数
    • 最长回文子串
    • Z 字形变换
    • 整数反转
    • 字符串转换整数 (atoi)
    • 回文数
    • 盛最多水的容器
    • 整数转罗马数字
    • 罗马数字转整数
    • 最长公共前缀
    • 三数之和
    • 最接近的三数之和
    • 电话号码的字母组合
    • 四数之和
    • 删除链表的倒数第 N 个结点
    • 有效的括号
    • 合并两个有序链表
    • 括号生成
    • 合并K个升序链表
    • 两两交换链表中的节点
    • 删除有序数组中的重复项
    • 移除元素
    • 实现 strStr()
    • 两数相除
    • 下一个排列
    • 最长有效括号
    • 搜索旋转排序数组
    • 在排序数组中查找元素的第一个和最后一个位置
    • 搜索插入位置
    • 有效的数独
    • 解数独
    • 外观数列
    • 组合总和
    • 组合总和 II
    • 接雨水
    • 字符串相乘
    • 跳跃游戏 II
    • 全排列
    • 全排列 II
    • 旋转图像
    • Pow(x, n)
    • 最大子数组和
    • 螺旋矩阵
    • 跳跃游戏
    • 合并区间
    • 插入区间
    • 最后一个单词的长度
    • 螺旋矩阵 II
    • 排列序列
    • 旋转链表
    • 不同路径
    • 不同路径 II
    • 最小路径和
    • 加一
    • 二进制求和
    • x 的平方根
    • 爬楼梯
    • 矩阵置零
    • 搜索二维矩阵
    • 颜色分类
    • 组合
    • 子集
    • 单词搜索
    • 删除有序数组中的重复项 II
    • 搜索旋转排序数组 II
    • 删除排序链表中的重复元素 II
    • 删除排序链表中的重复元素
    • 分隔链表
    • 合并两个有序数组
    • 子集 II
    • 解码方法
    • 反转链表 II
    • 二叉树的中序遍历
    • 不同的二叉搜索树
    • 验证二叉搜索树
    • 恢复二叉搜索树
    • 相同的树
    • 对称二叉树
    • 二叉树的层序遍历
    • 二叉树的最大深度
    • 从前序与中序遍历序列构造二叉树
    • 从中序与后序遍历序列构造二叉树
    • 二叉树的层序遍历 II
    • 将有序数组转换为二叉搜索树
    • 有序链表转换二叉搜索树
    • 平衡二叉树
    • 二叉树的最小深度
    • 路径总和
    • 路径总和 II
    • 杨辉三角
    • 杨辉三角 II
    • 验证回文串
    • 最长连续序列
    • 只出现一次的数字
    • 只出现一次的数字 II
    • 环形链表
    • 环形链表 II
    • 二叉树的前序遍历
    • 二叉树的后序遍历
    • 相交链表
    • 寻找峰值
    • 两数之和 II - 输入有序数组
    • 多数元素
    • 重复的DNA序列
    • 移除链表元素
    • 反转链表
    • 组合总和 III
    • 存在重复元素
    • 存在重复元素 II
    • 矩形面积
    • 翻转二叉树
    • 求众数 II
    • 二叉搜索树中第K小的元素
    • 用栈实现队列
    • 回文链表
    • 二叉搜索树的最近公共祖先
    • 二叉树的最近公共祖先
    • 删除链表中的节点
    • 搜索二维矩阵 II
    • 二叉树的所有路径
    • 只出现一次的数字 III
    • 丢失的数字
    • 寻找重复数
    • Nim 游戏
    • 最长递增子序列
    • 最大单词长度乘积
    • 3 的幂
    • 反转字符串
    • 两个数组的交集
    • 有效的完全平方数
    • 两整数之和
    • 组合总和 Ⅳ
    • 赎金信
    • 整数替换
    • 第 N 位数字
    • Fizz Buzz
    • 第三大的数
    • 从英文中重建数字
    • N 叉树的层序遍历
    • 字符串中的单词数
    • 路径总和 III
    • 排列硬币
    • 数组中重复的数据
    • 回旋镖的数量
    • 递增子序列
    • 下一个更大元素 II
    • 完美数
    • 斐波那契数
    • 学生出勤记录 I
    • 反转字符串中的单词 III
    • N 叉树的最大深度
    • 和为 K 的子数组
    • 分糖果
    • 最长和谐子序列
    • 根据二叉树创建字符串
    • 合并二叉树
    • 只有两个键的键盘
    • 有效的括号字符串
    • 二叉搜索树中的搜索
    • 二分查找
    • 分隔链表
    • 宝石与石头
    • 链表的中间结点
    • 救生艇
    • 验证栈序列
    • 最长公共子序列
    • 最长定差子序列
    • 分割平衡字符串
    • 将二叉搜索树变平衡
    • 连续字符
    • 一维数组的动态和
    • 换酒问题
    • 所有奇数长度子数组的和
    • 分式化简
    • 数组中重复的数字
    • 替换空格
    • 从尾到头打印链表
    • 用两个栈实现队列
    • 斐波那契数列
    • 青蛙跳台阶问题
    • 数值的整数次方
    • 打印从1到最大的n位数
    • 删除链表的节点
    • 调整数组顺序使奇数位于偶数前面
    • 合并两个排序的链表
    • 二叉树的镜像
    • 从上到下打印二叉树 II
    • 从上到下打印二叉树 III
    • 二叉搜索树的后序遍历序列
    • 二叉树中和为某一值的路径
    • 字符串的排列
    • 二叉搜索树的第k大节点
    • 二叉搜索树的最近公共祖先
    • 二叉树的最近公共祖先
    • 反转链表
    • 山峰数组的顶部
    • 最小路径之和
    • 返回倒数第 k 个节点
    • 链表求和
    • 检查平衡性
    • 最小K个数
    • 从上到下打印二叉树
    • 第一个只出现一次的字符
    • 字符串相加
    • 算法
    guoguoqiqi
    2022-02-13

    选择排序

    # 选择排序

    # 选择排序怎么排?

    原理很简单,就是选择第几小的数,放在第几位。

    说白了,先认为第一个数就是最小的,将它和后面的数挨个比较,如果都比它大,那它就是最小的,如果有比它小的,那么就认为那个是最小的,再将那个数和后面的挨个比较,直到找到最小的,然后放在第一位。

    接着从第二个开始,找到最小的放在第二位,照此类推,直到最后一个,一定是最大的,比较结束

    
    var example=[8,94,15,88,55,76,21,39];
    function selectSort(arr){
      var len=arr.length;
      var minIndex,temp;
      console.time('选择排序耗时');
      for(i=0;i<len-1;i++){
        minIndex=i;
        for(j=i+1;j<len;j++){
          if(arr[j]<arr[minIndex]){
            minIndex=j;
          }
        }
      temp=arr[i];
      arr[i]=arr[minIndex];
      arr[minIndex]=temp;
      }
      console.timeEnd('选择排序耗时');
      return arr;
    }
    console.log(selectSort(example));
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    ← 冒泡排序 两数之和→

    最近更新
    01
    vuex数据持久化怎么做
    05-22
    02
    vue的动态路由怎么配置使用
    05-22
    03
    vue权限控制一般怎么做
    05-22
    更多文章>
    Theme by Vdoing | Copyright © 2022-2022 Guoquoqiqi | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式