zoukankan      html  css  js  c++  java
  • Java算法

    我们常见的排序分为以下几类:

    1. 插入排序(直接插入排序,希尔排序)
    2. 交换排序(冒泡排序,快速排序)
    3. 选择排序(直接选择排序,堆排序)
    4. 归并排序
    5. 分配排序(箱排序,基数排序)

      对于以上的排序有什么不同呢?

      需要的辅助空间组多的:归并排序, 需要的辅助空间最小的:堆排序,平均速度最快的:快速排序

    时间复杂度:

    1. O(nlogn): 快速排序, 堆排序, 归并排序
    2. O(n2): 直接插入排序, 冒泡排序, 直接选择排序
    3. O(n): 基数排序

    空间复杂度:

    1. O(1): 直接插入排序, 冒泡排序, 直接选择排序
    2. O(logn): 快速排序
    3. O(n): 归并排序

      

  • 相关阅读:
    多线程学习
    Redis学习2
    Redis学习1
    封装
    创建对象内存分析
    稀疏数组
    反转数组、冒泡排序
    可变参数
    .net core 3.x Web Api + Docker个人练手项目
    .net 性能优化手段
  • 原文地址:https://www.cnblogs.com/brother-four/p/7118977.html
Copyright © 2011-2022 走看看