美文网首页
排序算法之——交换类排序

排序算法之——交换类排序

作者: 和女神经常玩 | 来源:发表于2018-04-19 21:27 被阅读0次

交换类排序的基本思想

对待排序列记录的关键字两两进行比较,只要发现两个记录为逆序就进行交换,直到没有逆序的记录为止。


冒泡排序

思想:每一趟依次比较相邻两个记录的关键字大小,如果逆序就交换位置,这样一趟下来满足顺序的最大记录或者最小记录必然冒出到最顶尖,重复多趟,直至完成排序。

平均时间复杂度:O(n^2)。

稳定性:稳定。

代码:


快速排序

思想:从待排序列中任意选择一个记录,以该记录的关键字作为“枢轴”,凡其关键字小于枢轴的记录均移动至该记录之前,反之,凡关键字大于枢轴的记录均移动至该记录之后。致使一趟排序之后,记录的无序序列R[1...n]将分割为左右两个子序列,然后分别对分割所得的两个子序列递归地进行快速排序,以此类推,直至每个子序列中只含一个记录为止。

平均时间复杂度:O(nlog2n)。注,当枢轴的选择为第一个记录或者最后一个记录的关键字时,如果待排序列有序的话,这种是最差的情况,时间复杂度为O(n^2),为避免这种问题,可选用中间位置(low+height)/2作为枢轴。

稳定性:不稳定。

代码:

相关文章

  • 经典算法---排序(摘抄)

    一、排序算法 前言:常见排序算法分类 非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入...

  • 排序算法之——交换类排序

    交换类排序的基本思想 对待排序列记录的关键字两两进行比较,只要发现两个记录为逆序就进行交换,直到没有逆序的记录为止...

  • 数据结构05-排序和查找

    1:排序算法分为如下5类: 插入排序:普通插入排序,shell排序等; 选择排序:普通选择排序,堆排序; 交换排序...

  • 排序算法时间复杂度、空间复杂度、稳定性比较

    一、排序算法的分类 1.插入类排序直接插入排序,折半插入排序,希尔排序2.交换类排序冒泡排序,快速排序3.选择类排...

  • 排序算法

    排序算法 非线性时间比较类排序 交换排序 冒泡排序 快速排序 插入排序 插入排序 希尔排序 选择排序 简单选择排序...

  • 冒泡排序

    1 .算法思想冒泡排序是一种简单的交换类排序算法,能够将相邻的元素进行交换,从而逐步将待排序序列变成有序序列。冒泡...

  • 1.2-交换排序-快速排序

    参考链接 交换排序:快速排序(Quick Sort) 白话经典算法系列之六 快速排序 快速搞定 快速排序是C.R....

  • (1)基本算法

    三大类 1、交换排序算法 冒泡(数据量小)-> 快速2、插入 类排序3、选择 类排序 求和 1-1/2+1/3...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 排序算法总结

    一、内排序算法分为:插入排序、交换排序、选择排序和归并排序四类 希尔排序相当于直接插入排序的升级,它们同属于插入排...

网友评论

      本文标题:排序算法之——交换类排序

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