美文网首页饥人谷技术博客
Js冒泡排序&选择排序

Js冒泡排序&选择排序

作者: 饥人谷_黄洪涛 | 来源:发表于2018-05-03 23:16 被阅读57次

title: Js冒泡排序&选择排序
date: 2018-05-03 23:00:00
tags: 基础排序冒泡法
categories: 前端


冒泡排序原理

  • 两相邻的数依次比较
  • 若从小到大排列两两比较时前一个数比后一个数大互换位置
  • 相互比较完一轮最大的数就会到最后面,并且不再参与比较
  • 循环比较 直到比较完成


    image

冒泡排序步骤

  1. 确定外层循环次数 数组的长度
  2. 确定内层循环的次数 每确定冒泡一个数内层循环减少一次 数组长度 减 外层循环的index
  3. 相邻两数相比较 前一个数比后一个数大 互换两数位置

冒泡排序代码实现

var a = [36,26,27,2,4,19,50,48];
var temp;

for(var i= 0; i <  a.length; i++)
for(var j = 0; j < a.length-i; j++){
    if(a[j] >  a[j+1]){
        temp = a[j];
        a[j] = a[j+1];
        a[j+1] = temp;
    }
}
console.log(a);

选择排序原理

  • 找未排序的元素中最小的数
  • 将最小数与起始位置互换
  • 直到排序完成


    image

选择排序步骤

  1. 确定外层循环次数 index为每一次寻找最小值的起始位置 直到数组长度
  2. 内层循环每次都是由起始位置 +1 直到数组长度
  3. 假设每一次的起始位置为最小数 碰到更小的用更小的和后面的数继续做比较
  4. 保存最小数的索引
  5. 内层循环结束后最小数与起始位置互换

选择排序代码实现

var a = [4,12,13,4,3,42,33,4,43,44];
var temp;
var minIndex;

for(var i = 0; i < a.length; i ++){
    minIndex = i;
    for(var j = i + 1; j < a.length; j++){
        if(a[minIndex] > a[j]){
            minIndex = j;
        }
    }
    temp = a[minIndex];
    a[minIndex] = a[i];
    a[i] = temp;
}
console.log(a);

相关文章

  • Js冒泡排序&选择排序

    title: Js冒泡排序&选择排序date: 2018-05-03 23:00:00tags: 基础排序冒泡法c...

  • JS算法笔记 - 排序

    冒泡排序 改进冒泡排序 选择排序 快速排序 在JS中相对较快 插入排序 改进:二分插入排序 希尔排序 动态定义间隔...

  • 常用的两种排序-冒泡、选择

    Swift版 冒泡排序 选择排序 OC版 冒泡排序 选择排序

  • OC中的排序算法

    目录 冒泡排序、快速排序、选择排序、插入排序 冒泡 快排 选择 插入

  • 记录几个常见的排序算法

    常见的排序有:快速排序、冒泡排序、希尔排序、选择排序、插入排序、归并排序 冒泡排序: 插入排序: 选择排序: 希尔...

  • 【js】数组常见的几种排序...

    js常见的排序方式有选择排序、插入排序、冒泡排序、快速排序。 选择排序,应该是一种不稳定的排序方式,怎么个不稳定法...

  • 排序

    冒泡排序: 冒泡排序 选择排序: 插入排序: 希尔排序: 归并排序: 快速排序: 堆排序: 计数排序: 桶排序: ...

  • dailyLearning -- 排序算法

    目录: 冒泡排序 快速排序 选择排序 插入排序 归并排序 冒泡排序 冒泡排序(Bubble Sort),是一种计算...

  • 简单算法之冒泡与选择排序

    冒泡排序 选择排序 冒泡排序与选择排序的时间复杂度是相同的,选择排序更像是冒泡排序的一半,注意两种排序排列方向问题

  • JavaScript实现排序算法

    实现了冒泡,选择,插入,快排,希尔,归并 冒泡排序 选择排序 插入排序 快速排序 希尔排序 归并排序

网友评论

    本文标题:Js冒泡排序&选择排序

    本文链接:https://www.haomeiwen.com/subject/njlrrftx.html