美文网首页
冒泡排序和选择排序的区别

冒泡排序和选择排序的区别

作者: hello_小丁同学 | 来源:发表于2020-08-11 11:38 被阅读0次

今天重温算法,一开始没看明白冒泡排序和选择排序的区别,因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据,看了实现代码才明白,冒泡排序在比较的过程中待排序的数据会发生位置改变,而选择排序法在比较过程中,是记录较大/较小数据的索引,只有在找到最大/最小数据的时候才会发生交换。

冒泡排序

算法步骤

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

代码实现

Array.prototype.bubble_sort = function() {
    var i, j, temp;
    for (i = 0; i < this.length - 1; i++)
        for (j = 0; j < this.length - 1 - i; j++)
            if (this[j] > this[j + 1]) {
                temp = this[j];
                this[j] = this[j + 1];
                this[j + 1] = temp;
            }
    return this;
}

选择排序

算法步骤

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

代码实现

function selectionSort(arr) {
    var len = arr.length;
    var minIndex, temp;
    for (var i = 0; i < len - 1; i++) {
        minIndex = i;
        for (var j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {     // 寻找最小的数
                minIndex = j;                 // 将最小数的索引保存
            }
        }
        temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
    return arr;
}

参考资料:
https://zh.wikipedia.org/wiki/冒泡排序
https://zh.wikipedia.org/wiki/选择排序
https://www.runoob.com/w3cnote/selection-sort.html

相关文章

  • 震惊!!JAVA中选择排序竟然是这样子的!

    说到选择排序,可能会想起冒泡排序。 冒泡排序和选择排序不禁会问它们有什么区别? 的确, 它们的基本思想是一样...

  • php常用算法汇总

    排序 1.冒泡排序 遍历数组依次比较对换。 2.选择排序 选择排序与冒泡排序类似,区别在于冒泡是每次都对换位置;选...

  • 微盟3面

    一面: 类和struct的区别; 构造和拷贝构造的区别; 分析一下冒泡,选择,快速排序; 写个冒泡排序; 栈和队列...

  • JAVA简单排序

    选择排序和冒泡排序: 排序结果

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

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

  • 冒泡算法/选择排序算法/直接插入排序算法C语言实现

    排序算法 冒泡排序 选择排序 冒泡排序和选择排序的核心思路: 冒泡排序是:相邻两个元素两两进行比较,小则交换位置。...

  • android算法 - 排序

    冒泡排序 选择排序 插入排序 快速排序 堆排序 其中简单排序就是冒泡排序,选择排序和插入排序。继而在分冶合并思想上...

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

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

  • OC中的排序算法

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

  • python实现经典排序算法

    冒泡排序 这里是向前冒泡,即每一趟排序后最小元素冒泡至最前 选择排序 选择排序和冒泡相似,每一趟排序完后将最小元素...

网友评论

      本文标题:冒泡排序和选择排序的区别

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