zoukankan      html  css  js  c++  java
  • 内部排序总结

    温故而知新!

    分类:

    1. 插入排序

      思想:其基本操作为将一个记录插入到已排好序的有序表中,从而使有序序列增1

    • 直接插入排序:基于顺序查找而得到插入位置
    • 折半插入排序:基于折半查找而得到插入位置(仅减少关键字比较次数)

      二者的记录移动次数相等,所以时间复杂度均为O(n^2)

      直接插入排序伪代码:

    2. 交换排序:

    • 冒泡排序
    • 快速排序(对冒泡的改进)

        前者平均复杂度O(n^2),后者平均复杂度O(nlogn)

    3. 选择排序:

      基本思想:每一趟在n-i+1个记录中选出关键字最小的记录并作为有序记录中的第i个记录。

    • 简单选择排序:通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i (1<= i <= n)个记录交换之。O(n^2)

    • 堆排序

    4. 归并排序

    时间复杂度:O(nlogn);空间复杂度:O(n);稳定的排序算法

    清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己 -- 共勉
  • 相关阅读:
    CSS3旋转动画
    CSS3的动画属性
    CSS选择器
    JS事件委托
    js 轮播图效果
    JS事件冒泡和事件捕获
    JS自定义播放器
    js闭包for循环只执行最后一个值得解决方法
    交通红绿灯
    汉明距
  • 原文地址:https://www.cnblogs.com/hello-yz/p/3286156.html
Copyright © 2011-2022 走看看