美文网首页
排序算法

排序算法

作者: igor_d140 | 来源:发表于2018-09-12 01:40 被阅读0次

    排序算法总结

    排序算法 平均时间复杂度 稳定性
    冒泡排序 O(n2) 稳定
    选择排序 O(n2) 不稳定
    插入排序 O(n2) 稳定
    希尔排序 O(n1.5) 不稳定
    快速排序 O(N*logN) 不稳定
    归并排序 O(N*logN) 稳定
    堆排序 O(N*logN) 不稳定
    基数排序 O(d(n+r)) 稳定

    一. 冒泡排序(BubbleSort)

    基本思想:两个数比较大小,较大的数下沉,较小的上浮。

    过程:

    比较相邻的两个数据,如果第二个数小,就交换位置。
    从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。
    继续重复上述过程,依次将第2.3...n-1个最小数排好位置。

    let stateOld = [56, 65, 36, 12, 5, 5, 27, 37, 52]
        let length = stateOld.length
        for(let i = 0; i < length - 1; i++) {
          for(let j = length - 1; j > 0;j--) {
            if(stateOld[j] < stateOld[j-1]) {
              stateOld[length] = stateOld[j-1]
              stateOld[j-1] = stateOld[j]
              stateOld[j] = stateOld[length]
            }
          }
        }
        console.log(stateOld) // [5, 5, 12, 27, 36, 37, 52, 56, 65, 56]
    
    
    

    相关文章

      网友评论

          本文标题:排序算法

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